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.
--- 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