Mercurial > hg-stable
changeset 20331:1d155582a8ea stable
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.
author | lstewart |
---|---|
date | Tue, 28 Jan 2014 14:00:23 +1100 |
parents | 69a0d22b9677 |
children | a959f7167077 |
files | hgext/convert/convcmd.py tests/test-convert-svn-branches.t |
diffstat | 2 files changed, 38 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/convert/convcmd.py Mon Jan 27 10:57:20 2014 +0100 +++ b/hgext/convert/convcmd.py Tue Jan 28 14:00:23 2014 +1100 @@ -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
--- a/tests/test-convert-svn-branches.t Mon Jan 27 10:57:20 2014 +0100 +++ b/tests/test-convert-svn-branches.t Tue Jan 28 14:00:23 2014 +1100 @@ -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 .. +