diff = mypopen("git diff-tree -r --name-status \"%s^\" \"%s\"" % (id, id)).readlines()
filesToAdd = set()
filesToDelete = set()
+ editedFiles = set()
for line in diff:
modifier = line[0]
path = line[1:].strip()
if modifier == "M":
- system("p4 edit %s" % path)
+ system("p4 edit \"%s\"" % path)
+ editedFiles.add(path)
elif modifier == "A":
filesToAdd.add(path)
if path in filesToDelete:
firstIteration = True
while response == "e":
if not firstIteration:
- response = raw_input("Do you want to submit this change? [y]es/[e]dit/[n]o ")
+ response = raw_input("Do you want to submit this change? [y]es/[e]dit/[n]o/[s]kip ")
firstIteration = False
if response == "e":
[handle, fileName] = tempfile.mkstemp()
pipe = os.popen("p4 submit -i", "wb")
pipe.write(submitTemplate)
pipe.close()
+ elif response == "s":
+ for f in editedFiles:
+ system("p4 revert \"%s\"" % f);
+ for f in filesToAdd:
+ system("p4 revert \"%s\"" % f);
+ system("rm %s" %f)
+ for f in filesToDelete:
+ system("p4 delete \"%s\"" % f);
+ return
else:
print "Not submitting!"
self.interactive = False