diff options
author | Simon Hausmann <simon@lst.de> | 2007-02-12 22:05:21 +0100 |
---|---|---|
committer | Simon Hausmann <simon@lst.de> | 2007-02-12 22:05:21 +0100 |
commit | 930d3cc94e98ccecfa8762ef79f7c29af4a72769 (patch) | |
tree | f47556f5799eea8d3cd8795ec0a4d63fde22689f /contrib/fast-import/p4-fast-export.py | |
parent | Set git fast-import marks for every imported change for future use. (diff) | |
download | tgif-930d3cc94e98ccecfa8762ef79f7c29af4a72769.tar.xz |
When trying to map p4 integrations to git merges just record it as a single merge with the newest p4 change as secondary parent.
Signed-off-by: Simon Hausmann <simon@lst.de>
Diffstat (limited to 'contrib/fast-import/p4-fast-export.py')
-rwxr-xr-x | contrib/fast-import/p4-fast-export.py | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/contrib/fast-import/p4-fast-export.py b/contrib/fast-import/p4-fast-export.py index 488533b07e..0a3e5c9934 100755 --- a/contrib/fast-import/p4-fast-export.py +++ b/contrib/fast-import/p4-fast-export.py @@ -172,7 +172,8 @@ def commit(details, files, branch, branchPrefix): gitStream.write("from %s\n" % initialParent) initialParent = "" - mergedBranches = set() + #mergedBranches = set() + merge = 0 for file in files: path = file["path"] @@ -202,13 +203,28 @@ def commit(details, files, branch, branchPrefix): if source.startswith(branchPrefix): continue - relPath = source[len(globalPrefix):] + lastSourceRev = log["erev0,0"] - for branch in knownBranches: - if relPath.startswith(branch) and branch not in mergedBranches: - gitStream.write("merge refs/heads/%s\n" % branch) - mergedBranches.add(branch) - break + sourceLog = p4CmdList("filelog -m 1 \"%s%s\"" % (source, lastSourceRev)) + if len(sourceLog) != 1: + print "eek! I got confused by the source filelog of %s%s" % (source, lastSourceRev) + sys.exit(1); + sourceLog = sourceLog[0] + + change = int(sourceLog["change0"]) + if change > merge: + merge = change + +# relPath = source[len(globalPrefix):] +# +# for branch in knownBranches: +# if relPath.startswith(branch) and branch not in mergedBranches: +# gitStream.write("merge refs/heads/%s\n" % branch) +# mergedBranches.add(branch) +# break + + if merge != 0: + gitStream.write("merge :%s\n" % merge) for file in files: path = file["path"] |