# HG changeset patch # User FUJIWARA Katsunori # Date 1361113468 -32400 # Node ID 61c8327ced503bf7a1996337af711e0f4a58d4c0 # Parent 7d66a44e87ede62a076000fb1099498155a64d71 bundle: treat branches created newly on the local correctly (issue3828) Before this patch, "hg bundle --branch foo other" fails to create bundle file, if specified "foo" branch is created newly on the local repository. "hg bundle" uses "hg.addbranchrevs(repo, other, ...)" to look branch names up, even though other outgoing-like implementation uses "hg.addbranchrevs(repo, repo, ...)". In the former invocation, "other" repository recognizes such branches as unknown, so execution is aborted. This patch uses "hg.addbranchrevs(repo, repo, ..)" in "hg bundle" to bundle revisions on such branches correctly. diff -r 7d66a44e87ed -r 61c8327ced50 mercurial/commands.py --- a/mercurial/commands.py Fri Feb 15 15:06:43 2013 -0600 +++ b/mercurial/commands.py Mon Feb 18 00:04:28 2013 +0900 @@ -1066,7 +1066,7 @@ dest = ui.expandpath(dest or 'default-push', dest or 'default') dest, branches = hg.parseurl(dest, opts.get('branch')) other = hg.peer(repo, opts, dest) - revs, checkout = hg.addbranchrevs(repo, other, branches, revs) + revs, checkout = hg.addbranchrevs(repo, repo, branches, revs) heads = revs and map(repo.lookup, revs) or revs outgoing = discovery.findcommonoutgoing(repo, other, onlyheads=heads, diff -r 7d66a44e87ed -r 61c8327ced50 tests/test-bundle.t --- a/tests/test-bundle.t Fri Feb 15 15:06:43 2013 -0600 +++ b/tests/test-bundle.t Mon Feb 18 00:04:28 2013 +0900 @@ -522,6 +522,21 @@ [255] $ cd .. +test to bundle revisions on the newly created branch (issue3828): + + $ hg -q clone -U test test-clone + $ cd test + + $ hg -q branch foo + $ hg commit -m "create foo branch" + $ hg -q outgoing ../test-clone + 9:b4f5acb1ee27 + $ hg -q bundle --branch foo foo.hg ../test-clone + $ hg -R foo.hg -q log -r "bundle()" + 9:b4f5acb1ee27 + + $ cd .. + test for http://mercurial.selenic.com/bts/issue1144 test that verify bundle does not traceback