@@ -29,6 +29,39 @@
else:
return s.decode('utf-8').encode(orig_encoding, 'replace')
+def mapbranch(branch, branchmap):
+ '''
+ >>> bmap = {'default': 'branch1'}
+ >>> for i in ['', None]:
+ ... mapbranch(i, bmap)
+ 'branch1'
+ 'branch1'
+ >>> bmap = {'None': 'branch2'}
+ >>> for i in ['', None]:
+ ... mapbranch(i, bmap)
+ 'branch2'
+ 'branch2'
+ >>> bmap = {'None': 'branch3', 'default': 'branch4'}
+ >>> for i in ['None', '', None, 'default', 'branch5']:
+ ... mapbranch(i, bmap)
+ 'branch3'
+ 'branch4'
+ 'branch4'
+ 'branch4'
+ 'branch5'
+ '''
+ # If branch is None or empty, this commit is coming from the source
+ # repository's default branch and destined for the default branch in the
+ # destination repository. For such commits, using a literal "default"
+ # in branchmap below allows the user to map "default" to an alternate
+ # default branch in the destination repository.
+ branch = branchmap.get(branch or 'default', branch)
+ # At some point we used "None" literal to denote the default branch,
+ # attempt to use that for backward compatibility.
+ if (not branch):
+ branch = branchmap.get(str(None), branch)
+ return branch
+
source_converters = [
('cvs', convert_cvs, 'branchsort'),
('git', convert_git, 'branchsort'),
@@ -377,12 +410,7 @@
def cachecommit(self, rev):
commit = self.source.getcommit(rev)
commit.author = self.authors.get(commit.author, commit.author)
- # 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)
+ commit.branch = mapbranch(commit.branch, self.branchmap)
self.commitcache[rev] = commit
return commit
@@ -140,7 +140,7 @@
date = (int(d["time"]), 0) # timezone not set
c = commit(author=self.recode(d["user"]),
date=util.datestr(date, '%Y-%m-%d %H:%M:%S %1%2'),
- parents=parents, desc=desc, branch='',
+ parents=parents, desc=desc, branch=None,
extra={"p4": change})
files = []
@@ -99,7 +99,7 @@
Convert 'trunk' to branch other than 'default'
$ cat > branchmap <<EOF
- > None hgtrunk
+ > default hgtrunk
>
>
> EOF
@@ -121,9 +121,8 @@
0 last change to a
$ cd C-hg
- $ hg branches
- hgtrunk 10:745f063703b4
- old 9:aa50d7b8d922
- old2 8:c85a22267b6e (inactive)
- $ cd ..
-
+ $ hg branches --template '{branch}\n'
+ hgtrunk
+ old
+ old2
+ $ cd ..
\ No newline at end of file
@@ -31,6 +31,7 @@
testmod('mercurial.url')
testmod('mercurial.util')
testmod('mercurial.util', testtarget='platform')
+testmod('hgext.convert.convcmd')
testmod('hgext.convert.cvsps')
testmod('hgext.convert.filemap')
testmod('hgext.convert.p4')