Added experimental but super-fast --apply-as-patch option to git-p4 submit
Signed-off-by: Simon Hausmann <hausmann@kde.org>
This commit is contained in:
parent
b4aa8d12b4
commit
04219c04b7
@ -115,7 +115,8 @@ class P4Sync(Command):
|
|||||||
optparse.make_option("--master", dest="master"),
|
optparse.make_option("--master", dest="master"),
|
||||||
optparse.make_option("--log-substitutions", dest="substFile"),
|
optparse.make_option("--log-substitutions", dest="substFile"),
|
||||||
optparse.make_option("--noninteractive", action="store_false"),
|
optparse.make_option("--noninteractive", action="store_false"),
|
||||||
optparse.make_option("--dry-run", action="store_true")
|
optparse.make_option("--dry-run", action="store_true"),
|
||||||
|
optparse.make_option("--apply-as-patch", action="store_true", dest="applyAsPatch")
|
||||||
]
|
]
|
||||||
self.description = "Submit changes from git to the perforce depot."
|
self.description = "Submit changes from git to the perforce depot."
|
||||||
self.firstTime = True
|
self.firstTime = True
|
||||||
@ -126,6 +127,7 @@ class P4Sync(Command):
|
|||||||
self.firstTime = True
|
self.firstTime = True
|
||||||
self.origin = "origin"
|
self.origin = "origin"
|
||||||
self.master = ""
|
self.master = ""
|
||||||
|
self.applyAsPatch = False
|
||||||
|
|
||||||
self.logSubstitutions = {}
|
self.logSubstitutions = {}
|
||||||
self.logSubstitutions["<enter description here>"] = "%log%"
|
self.logSubstitutions["<enter description here>"] = "%log%"
|
||||||
@ -146,8 +148,9 @@ class P4Sync(Command):
|
|||||||
|
|
||||||
self.config["commits"] = commits
|
self.config["commits"] = commits
|
||||||
|
|
||||||
print "Creating temporary p4-sync branch from %s ..." % self.origin
|
if not self.applyAsPatch:
|
||||||
system("git checkout -f -b p4-sync %s" % self.origin)
|
print "Creating temporary p4-sync branch from %s ..." % self.origin
|
||||||
|
system("git checkout -f -b p4-sync %s" % self.origin)
|
||||||
|
|
||||||
def prepareLogMessage(self, template, message):
|
def prepareLogMessage(self, template, message):
|
||||||
result = ""
|
result = ""
|
||||||
@ -193,8 +196,11 @@ class P4Sync(Command):
|
|||||||
else:
|
else:
|
||||||
die("unknown modifier %s for %s" % (modifier, path))
|
die("unknown modifier %s for %s" % (modifier, path))
|
||||||
|
|
||||||
system("git-diff-files --name-only -z | git-update-index --remove -z --stdin")
|
if self.applyAsPatch:
|
||||||
system("git cherry-pick --no-commit \"%s\"" % id)
|
system("git-diff-tree -p \"%s^\" \"%s\" | patch -p1" % (id, id))
|
||||||
|
else:
|
||||||
|
system("git-diff-files --name-only -z | git-update-index --remove -z --stdin")
|
||||||
|
system("git cherry-pick --no-commit \"%s\"" % id)
|
||||||
|
|
||||||
for f in filesToAdd:
|
for f in filesToAdd:
|
||||||
system("p4 add %s" % f)
|
system("p4 add %s" % f)
|
||||||
@ -305,12 +311,13 @@ class P4Sync(Command):
|
|||||||
print "No changes found to apply between %s and current HEAD" % self.origin
|
print "No changes found to apply between %s and current HEAD" % self.origin
|
||||||
else:
|
else:
|
||||||
print "All changes applied!"
|
print "All changes applied!"
|
||||||
print "Deleting temporary p4-sync branch and going back to %s" % self.master
|
if not self.applyAsPatch:
|
||||||
system("git checkout %s" % self.master)
|
print "Deleting temporary p4-sync branch and going back to %s" % self.master
|
||||||
system("git branch -D p4-sync")
|
system("git checkout %s" % self.master)
|
||||||
print "Cleaning out your perforce checkout by doing p4 edit ... ; p4 revert ..."
|
system("git branch -D p4-sync")
|
||||||
system("p4 edit ... >/dev/null")
|
print "Cleaning out your perforce checkout by doing p4 edit ... ; p4 revert ..."
|
||||||
system("p4 revert ... >/dev/null")
|
system("p4 edit ... >/dev/null")
|
||||||
|
system("p4 revert ... >/dev/null")
|
||||||
os.remove(self.configFile)
|
os.remove(self.configFile)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
Loading…
Reference in New Issue
Block a user