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>
This commit is contained in:
parent
f5816a5522
commit
6ae8de88f5
@ -52,12 +52,44 @@ def system(cmd):
|
|||||||
if os.system(cmd) != 0:
|
if os.system(cmd) != 0:
|
||||||
die("command failed: %s" % cmd)
|
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:
|
class Command:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.usage = "usage: %prog [options]"
|
self.usage = "usage: %prog [options]"
|
||||||
|
|
||||||
class P4Debug(Command):
|
class P4Debug(Command):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
Command.__init__(self)
|
||||||
self.options = [
|
self.options = [
|
||||||
]
|
]
|
||||||
self.description = "A tool to debug the output of p4 -G."
|
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 revert %s" % f)
|
||||||
system("p4 delete %s" % f)
|
system("p4 delete %s" % f)
|
||||||
|
|
||||||
logMessage = ""
|
logMessage = extractLogMessageFromGitCommit(id)
|
||||||
foundTitle = False
|
logMessage = logMessage.replace("\n", "\n\t")
|
||||||
for log in os.popen("git-cat-file commit %s" % id).readlines():
|
logMessage = logMessage[:-1]
|
||||||
if not foundTitle:
|
|
||||||
if len(log) == 1:
|
|
||||||
foundTitle = 1
|
|
||||||
continue
|
|
||||||
|
|
||||||
if len(logMessage) > 0:
|
|
||||||
logMessage += "\t"
|
|
||||||
logMessage += log
|
|
||||||
|
|
||||||
template = os.popen("p4 change -o").read()
|
template = os.popen("p4 change -o").read()
|
||||||
|
|
||||||
@ -506,7 +530,7 @@ class GitSync(Command):
|
|||||||
|
|
||||||
self.gitStream.write("data <<EOT\n")
|
self.gitStream.write("data <<EOT\n")
|
||||||
self.gitStream.write(details["desc"])
|
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")
|
self.gitStream.write("EOT\n\n")
|
||||||
|
|
||||||
if len(parent) > 0:
|
if len(parent) > 0:
|
||||||
|
Loading…
Reference in New Issue
Block a user