提交 a3fdd579 编写于 作者: S Simon Hausmann

Make git-p4 submit detect the correct reference (origin) branch when

working with multi-branch imports.
Signed-off-by: NSimon Hausmann <simon@lst.de>
上级 5e100b5c
......@@ -156,6 +156,7 @@ def extractSettingsGitLog(log):
paths = values.get("depot-paths")
if not paths:
paths = values.get("depot-path")
if paths:
values['depot-paths'] = paths.split(',')
return values
......@@ -494,13 +495,28 @@ class P4Submit(Command):
return False
depotPath = ""
settings = None
if gitBranchExists("p4"):
settings = extractSettingsGitLog(extractLogMessageFromGitCommit("p4"))
if len(depotPath) == 0 and gitBranchExists("origin"):
settings = extractSettingsGitLog(extractLogMessageFromGitCommit("origin"))
parent = 0
while parent < 65535:
commit = "HEAD~%s" % parent
log = extractLogMessageFromGitCommit(commit)
settings = extractSettingsGitLog(log)
if not settings.has_key("depot-paths"):
parent = parent + 1
continue
depotPath = settings['depot-paths'][0]
if len(self.origin) == 0:
names = read_pipe_lines("git name-rev '--refs=refs/remotes/p4/*' '%s'" % commit)
if len(names) > 0:
# strip away the beginning of 'HEAD~42 refs/remotes/p4/foo'
self.origin = names[0].strip()[len(commit) + 1:]
break
if self.verbose:
print "Origin branch is " + self.origin
if len(depotPath) == 0:
print "Internal error: cannot locate perforce depot path from existing branches"
sys.exit(128)
......@@ -530,12 +546,6 @@ class P4Submit(Command):
if response == "y" or response == "yes":
system("p4 sync ...")
if len(self.origin) == 0:
if gitBranchExists("p4"):
self.origin = "p4"
else:
self.origin = "origin"
if self.reset:
self.firstTime = True
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册