# HG changeset patch # User lstewart # Date 2014-01-28 03:00:23 # Node ID 1d155582a8eaadd4da3f0186654d5836b2a1f8a7 # Parent 69a0d22b96775e44a31d11436d7f93f51cb98031 convert: use branchmap to change default branch in destination (issue3469) The fix for issue2653 broke the ability to map the default branch of a source repository to a non-default named branch in the destination repository. Leave the default behaviour as is, but allow the branch name "None" to be used to map to a non-default named branch in the destination repository. diff --git a/hgext/convert/convcmd.py b/hgext/convert/convcmd.py --- a/hgext/convert/convcmd.py +++ b/hgext/convert/convcmd.py @@ -371,7 +371,12 @@ class converter(object): def cachecommit(self, rev): commit = self.source.getcommit(rev) commit.author = self.authors.get(commit.author, commit.author) - commit.branch = self.branchmap.get(commit.branch, commit.branch) + # If commit.branch is None, this commit is coming from the source + # repository's default branch and destined for the default branch in the + # destination repository. For such commits, passing a literal "None" + # string to branchmap.get() below allows the user to map "None" to an + # alternate default branch in the destination repository. + commit.branch = self.branchmap.get(str(commit.branch), commit.branch) self.commitcache[rev] = commit return commit diff --git a/tests/test-convert-svn-branches.t b/tests/test-convert-svn-branches.t --- a/tests/test-convert-svn-branches.t +++ b/tests/test-convert-svn-branches.t @@ -96,3 +96,35 @@ Test hg failing to call itself $ HG=foobar hg convert svn-repo B-hg 2>&1 | grep abort abort: Mercurial failed to run itself, check hg executable is in PATH + +Convert 'trunk' to branch other than 'default' + + $ cat > branchmap < None hgtrunk + > + > + > EOF + $ hg convert --branchmap=branchmap --datesort -r 10 svn-repo C-hg + initializing destination C-hg repository + scanning source... + sorting... + converting... + 10 init projA + 9 hello + 8 branch trunk, remove c and dir + 7 change a + 6 change b + 5 move and update c + 4 move and update c + 3 change b again + 2 move to old2 + 1 move back to old + 0 last change to a + + $ cd C-hg + $ hg branches + hgtrunk 10:745f063703b4 + old 9:aa50d7b8d922 + old2 8:c85a22267b6e (inactive) + $ cd .. +