bundle: treat branches created newly on the local correctly (issue3828) stable
authorFUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Mon, 18 Feb 2013 00:04:28 +0900
branchstable
changeset 18701 61c8327ced50
parent 18699 7d66a44e87ed
child 18703 5bef0655f2e9
child 18706 f17680992123
child 18721 2dc7f63181b9
child 18838 19543bd9ecde
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.
mercurial/commands.py
tests/test-bundle.t
--- 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,
--- 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