summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Simon Hausmann <simon@lst.de>2007-03-22 21:10:25 +0100
committerLibravatar Simon Hausmann <simon@lst.de>2007-03-22 21:10:25 +0100
commit6ae8de88f53f92dd593c5d03b67d0194e7d4eefe (patch)
treebaa2bbd69006ddd211b2502005c538a6c8b5c057
parentChanged the default branch for imports from "master" to "p4" (diff)
downloadtgif-6ae8de88f53f92dd593c5d03b67d0194e7d4eefe.tar.xz
Added some helper function(s) to parse the depot path and change number from the log message
Signed-off-by: Simon Hausmann <simon@lst.de>
-rwxr-xr-xcontrib/fast-import/git-p448
1 files changed, 36 insertions, 12 deletions
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index 669cf95d74..6ead1c4173 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -52,12 +52,44 @@ def system(cmd):
if os.system(cmd) != 0:
die("command failed: %s" % cmd)
+def extractLogMessageFromGitCommit(commit):
+ logMessage = ""
+ foundTitle = False
+ for log in os.popen("git-cat-file commit %s" % commit).readlines():
+ if not foundTitle:
+ if len(log) == 1:
+ foundTitle = 1
+ continue
+
+ logMessage += log
+ return logMessage
+
+def extractDepotPathAndChangeFromGitLog(log):
+ values = {}
+ for line in log.split("\n"):
+ line = line.strip()
+ if line.startswith("[git-p4:") and line.endswith("]"):
+ line = line[8:-1].strip()
+ for assignment in line.split(":"):
+ variable = assignment.strip()
+ value = ""
+ equalPos = assignment.find("=")
+ if equalPos != -1:
+ variable = assignment[:equalPos].strip()
+ value = assignment[equalPos + 1:].strip()
+ if value.startswith("\"") and value.endswith("\""):
+ value = value[1:-1]
+ values[variable] = value
+
+ return values.get("depot-path"), values.get("change")
+
class Command:
def __init__(self):
self.usage = "usage: %prog [options]"
class P4Debug(Command):
def __init__(self):
+ Command.__init__(self)
self.options = [
]
self.description = "A tool to debug the output of p4 -G."
@@ -208,17 +240,9 @@ class P4Sync(Command):
system("p4 revert %s" % f)
system("p4 delete %s" % f)
- logMessage = ""
- foundTitle = False
- for log in os.popen("git-cat-file commit %s" % id).readlines():
- if not foundTitle:
- if len(log) == 1:
- foundTitle = 1
- continue
-
- if len(logMessage) > 0:
- logMessage += "\t"
- logMessage += log
+ logMessage = extractLogMessageFromGitCommit(id)
+ logMessage = logMessage.replace("\n", "\n\t")
+ logMessage = logMessage[:-1]
template = os.popen("p4 change -o").read()
@@ -506,7 +530,7 @@ class GitSync(Command):
self.gitStream.write("data <<EOT\n")
self.gitStream.write(details["desc"])
- self.gitStream.write("\n[git-p4: depot-path: \"%s\"; change: %s]\n" % (branchPrefix, details["change"]))
+ self.gitStream.write("\n[git-p4: depot-path = \"%s\": change = %s]\n" % (branchPrefix, details["change"]))
self.gitStream.write("EOT\n\n")
if len(parent) > 0: