git-p4: fix submit in non --prepare-p4-only mode
b4073bb3 (git-p4: Do not include diff in spec file when just preparing p4, 2014-05-24) broke git p4 submit, here is a proper fix, including proper handling for windows end of lines. Signed-off-by: Maxime Coste <frrrwww@gmail.com> Acked-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Maxime Coste committed
Jun 11, 2014 at 14:09 UTC
e2a892ee05ae5d9675881beb6dd5f90ca4677b0d
1 file changed
+6
-6
git-p4.py
+6
-6
@@ -1238,7 +1238,7 @@ class P4Submit(Command, P4UserMap):
1238
if response == 'n':
1239
return False
1240
1241
- def get_diff_description(self, editedFiles):
1241
+ def get_diff_description(self, editedFiles, filesToAdd):
1242
# diff
1243
if os.environ.has_key("P4DIFF"):
1244
del(os.environ["P4DIFF"])
@@ -1258,7 +1258,7 @@ class P4Submit(Command, P4UserMap):
1258
newdiff += "+" + line
1259
f.close()
1260
1261
- return diff + newdiff
1261
+ return (diff + newdiff).replace('\r\n', '\n')
1262
1263
def applyCommit(self, id):
1264
"""Apply one commit, return True if it succeeded."""
@@ -1422,10 +1422,10 @@ class P4Submit(Command, P4UserMap):
1422
separatorLine = "######## everything below this line is just the diff #######\n"
1423
if not self.prepare_p4_only:
1424
submitTemplate += separatorLine
1425
- submitTemplate += self.get_diff_description(editedFiles)
1425
+ submitTemplate += self.get_diff_description(editedFiles, filesToAdd)
1426
1427
(handle, fileName) = tempfile.mkstemp()
1428
- tmpFile = os.fdopen(handle, "w+")
1428
+ tmpFile = os.fdopen(handle, "w+b")
1429
if self.isWindows:
1430
submitTemplate = submitTemplate.replace("\n", "\r\n")
1431
tmpFile.write(submitTemplate)
@@ -1475,9 +1475,9 @@ class P4Submit(Command, P4UserMap):
1475
tmpFile = open(fileName, "rb")
1476
message = tmpFile.read()
1477
tmpFile.close()
1478
- submitTemplate = message[:message.index(separatorLine)]
1478
if self.isWindows:
1480
- submitTemplate = submitTemplate.replace("\r\n", "\n")
1479
+ message = message.replace("\r\n", "\n")
1480
+ submitTemplate = message[:message.index(separatorLine)]
1481
p4_write_pipe(['submit', '-i'], submitTemplate)
1482
1483
if self.preserveUser: