summaryrefslogtreecommitdiff
path: root/contrib/fast-import/p4-fast-export.py
diff options
context:
space:
mode:
authorLibravatar Simon Hausmann <simon@lst.de>2007-02-12 22:05:21 +0100
committerLibravatar Simon Hausmann <simon@lst.de>2007-02-12 22:05:21 +0100
commit930d3cc94e98ccecfa8762ef79f7c29af4a72769 (patch)
treef47556f5799eea8d3cd8795ec0a4d63fde22689f /contrib/fast-import/p4-fast-export.py
parentSet git fast-import marks for every imported change for future use. (diff)
downloadtgif-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-xcontrib/fast-import/p4-fast-export.py30
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"]