Mercurial > hg
diff hgext/convert/cvs.py @ 6077:fb259a3572e9
convert: try to be smarter about CVS branching
Better handles this case:
The output from cvsps -A -u --cvs-direct -q:
---------------------
PatchSet 1
Date: 2008/02/08 20:33:28
Author: fk
Branch: HEAD
Tag: (none)
Log:
initial
Members:
file_one:INITIAL->1.1
---------------------
PatchSet 2
Date: 2008/02/08 20:33:32
Author: fk
Branch: branch_name
Ancestor branch: HEAD
Tag: (none)
Log:
new file on branch
Members:
file_two:1.1->1.1.2.1
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 11 Feb 2008 16:16:05 -0600 |
parents | 549a7ebe1607 |
children | 308988071b90 |
line wrap: on
line diff
--- a/hgext/convert/cvs.py Wed Feb 06 20:44:25 2008 -0600 +++ b/hgext/convert/cvs.py Mon Feb 11 16:16:05 2008 -0600 @@ -71,7 +71,7 @@ elif l.startswith("Ancestor branch"): ancestor = l[17:-1] # figure out the parent later - self.parent[id] = None + self.parent[id] = self.lastbranch[ancestor] elif l.startswith("Author"): author = self.recode(l[8:-1]) elif l.startswith("Tag:") or l.startswith("Tags:"): @@ -101,13 +101,14 @@ p = [] if branch == "HEAD": branch = "" - if branch and p[0] == None: + if branch: latest = None # the last changeset that contains a base # file is our parent for r in oldrevs: - latest = max(filerevids[r], latest) - p = [latest] + latest = max(filerevids.get(r, None), latest) + if latest: + p = [latest] # add current commit to set c = commit(author=author, date=date, parents=p,