Skip to content

Commit e2a892e

Browse files
mawwwgitster
authored andcommitted
git-p4: fix submit in non --prepare-p4-only mode
b4073bb (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 <[email protected]> Acked-by: Pete Wyckoff <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent b4073bb commit e2a892e

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

git-p4.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1238,7 +1238,7 @@ def edit_template(self, template_file):
12381238
if response == 'n':
12391239
return False
12401240

1241-
def get_diff_description(self, editedFiles):
1241+
def get_diff_description(self, editedFiles, filesToAdd):
12421242
# diff
12431243
if os.environ.has_key("P4DIFF"):
12441244
del(os.environ["P4DIFF"])
@@ -1258,7 +1258,7 @@ def get_diff_description(self, editedFiles):
12581258
newdiff += "+" + line
12591259
f.close()
12601260

1261-
return diff + newdiff
1261+
return (diff + newdiff).replace('\r\n', '\n')
12621262

12631263
def applyCommit(self, id):
12641264
"""Apply one commit, return True if it succeeded."""
@@ -1422,10 +1422,10 @@ def applyCommit(self, id):
14221422
separatorLine = "######## everything below this line is just the diff #######\n"
14231423
if not self.prepare_p4_only:
14241424
submitTemplate += separatorLine
1425-
submitTemplate += self.get_diff_description(editedFiles)
1425+
submitTemplate += self.get_diff_description(editedFiles, filesToAdd)
14261426

14271427
(handle, fileName) = tempfile.mkstemp()
1428-
tmpFile = os.fdopen(handle, "w+")
1428+
tmpFile = os.fdopen(handle, "w+b")
14291429
if self.isWindows:
14301430
submitTemplate = submitTemplate.replace("\n", "\r\n")
14311431
tmpFile.write(submitTemplate)
@@ -1475,9 +1475,9 @@ def applyCommit(self, id):
14751475
tmpFile = open(fileName, "rb")
14761476
message = tmpFile.read()
14771477
tmpFile.close()
1478-
submitTemplate = message[:message.index(separatorLine)]
14791478
if self.isWindows:
1480-
submitTemplate = submitTemplate.replace("\r\n", "\n")
1479+
message = message.replace("\r\n", "\n")
1480+
submitTemplate = message[:message.index(separatorLine)]
14811481
p4_write_pipe(['submit', '-i'], submitTemplate)
14821482

14831483
if self.preserveUser:

0 commit comments

Comments
 (0)