summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 12d04ca)
raw | patch | inline | side by side (parent: 12d04ca)
author | Simon Hausmann <simon@lst.de> | |
Mon, 12 Feb 2007 19:28:58 +0000 (20:28 +0100) | ||
committer | Simon Hausmann <simon@lst.de> | |
Mon, 12 Feb 2007 19:28:58 +0000 (20:28 +0100) |
Signed-off-by: Simon Hausmann <simon@lst.de>
contrib/fast-import/p4-fast-export.py | patch | blob | history |
index 61b9e67e54b4bdb3808ed8c02eb668a0cb0db1cf..07d6e53852c2d76b0b16b91450eeec0c5e2d9cde 100755 (executable)
result.update(entry)
return result;
-def commit(details):
+def extractFilesFromCommit(commit):
+ files = []
+ fnum = 0
+ while commit.has_key("depotFile%s" % fnum):
+ file = {}
+ file["path"] = commit["depotFile%s" % fnum]
+ file["rev"] = commit["rev%s" % fnum]
+ file["action"] = commit["action%s" % fnum]
+ file["type"] = commit["type%s" % fnum]
+ files.append(file)
+ fnum = fnum + 1
+ return files
+
+def commit(details, files, branch):
global initialParent
global users
global lastChange
gitStream.write("from %s\n" % initialParent)
initialParent = ""
- fnum = 0
- while details.has_key("depotFile%s" % fnum):
- path = details["depotFile%s" % fnum]
+ for file in files:
+ path = file["path"]
if not path.startswith(prefix):
print "\nchanged files: ignoring path %s outside of %s in change %s" % (path, prefix, change)
- fnum = fnum + 1
continue
- rev = details["rev%s" % fnum]
+ rev = file["rev"]
depotPath = path + "#" + rev
relPath = path[len(prefix):]
- action = details["action%s" % fnum]
+ action = file["action"]
if action == "delete":
gitStream.write("D %s\n" % relPath)
else:
mode = 644
- if details["type%s" % fnum].startswith("x"):
+ if file["type"].startswith("x"):
mode = 755
data = os.popen("p4 print -q \"%s\"" % depotPath, "rb").read()
gitStream.write(data)
gitStream.write("\n")
- fnum = fnum + 1
-
gitStream.write("\n")
lastChange = details["change"]
details["change"] = newestRevision
try:
- commit(details)
+ commit(details, extractFilesFromCommit(details), branch)
except:
print gitError.read()
cnt = cnt + 1
try:
- commit(description)
+ commit(description, extractFilesFromCommit(description), branch)
except:
print gitError.read()
sys.exit(1)