Skip to content

Commit

Permalink
Make it possible to abort the submission of a change to Perforce
Browse files Browse the repository at this point in the history
Currently it is not possible to skip the submission of a change to Perforce
when running git-p4 submit. This patch compares the modification time before
and after the submit editor invokation and offers a prompt for skipping if
the submit template file was not saved.

Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Simon Hausmann authored and Junio C Hamano committed Aug 27, 2008
1 parent cb138fe commit cdc7e38
Showing 1 changed file with 23 additions and 8 deletions.
31 changes: 23 additions & 8 deletions contrib/fast-import/git-p4
Original file line number Diff line number Diff line change
Expand Up @@ -708,6 +708,7 @@ class P4Submit(Command):
newdiff = newdiff.replace("\n", "\r\n")
tmpFile.write(submitTemplate + separatorLine + diff + newdiff)
tmpFile.close()
mtime = os.stat(fileName).st_mtime
defaultEditor = "vi"
if platform.system() == "Windows":
defaultEditor = "notepad"
Expand All @@ -716,15 +717,29 @@ class P4Submit(Command):
else:
editor = os.environ.get("EDITOR", defaultEditor);
system(editor + " " + fileName)
tmpFile = open(fileName, "rb")
message = tmpFile.read()
tmpFile.close()
os.remove(fileName)
submitTemplate = message[:message.index(separatorLine)]
if self.isWindows:
submitTemplate = submitTemplate.replace("\r\n", "\n")

p4_write_pipe("submit -i", submitTemplate)
response = "y"
if os.stat(fileName).st_mtime <= mtime:
response = "x"
while response != "y" and response != "n":
response = raw_input("Submit template unchanged. Submit anyway? [y]es, [n]o (skip this patch) ")

if response == "y":
tmpFile = open(fileName, "rb")
message = tmpFile.read()
tmpFile.close()
submitTemplate = message[:message.index(separatorLine)]
if self.isWindows:
submitTemplate = submitTemplate.replace("\r\n", "\n")
p4_write_pipe("submit -i", submitTemplate)
else:
for f in editedFiles:
p4_system("revert \"%s\"" % f);
for f in filesToAdd:
p4_system("revert \"%s\"" % f);
system("rm %s" %f)

os.remove(fileName)
else:
fileName = "submit.txt"
file = open(fileName, "w+")
Expand Down

0 comments on commit cdc7e38

Please sign in to comment.