diff --git a/hgext/convert/convcmd.py b/hgext/convert/convcmd.py index 69a0d22b96775e44a31d11436d7f93f51cb98031_aGdleHQvY29udmVydC9jb252Y21kLnB5..1d155582a8eaadd4da3f0186654d5836b2a1f8a7_aGdleHQvY29udmVydC9jb252Y21kLnB5 100644 --- a/hgext/convert/convcmd.py +++ b/hgext/convert/convcmd.py @@ -371,7 +371,12 @@ 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 index 69a0d22b96775e44a31d11436d7f93f51cb98031_dGVzdHMvdGVzdC1jb252ZXJ0LXN2bi1icmFuY2hlcy50..1d155582a8eaadd4da3f0186654d5836b2a1f8a7_dGVzdHMvdGVzdC1jb252ZXJ0LXN2bi1icmFuY2hlcy50 100644 --- a/tests/test-convert-svn-branches.t +++ b/tests/test-convert-svn-branches.t @@ -96,3 +96,35 @@ $ 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 <<EOF + > 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 .. +