summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar dorgon.chang <dorgonman@hotmail.com>2021-06-21 05:16:13 +0000
committerLibravatar Junio C Hamano <gitster@pobox.com>2021-06-28 09:49:30 -0700
commit54662d595846dae8884c6b5f9be084e10ada9e4e (patch)
treec66b028b6cd44b951a744cdcb380b5f3926e8d7f
parentGit 2.32 (diff)
downloadtgif-54662d595846dae8884c6b5f9be084e10ada9e4e.tar.xz
git-p4: fix failed submit by skip non-text data files
If the submit contain binary files, it will throw exception and stop submit when try to append diff line description. This commit will skip non-text data files when exception UnicodeDecodeError thrown. The skip will not affect actual submit files in the resulting cl, the diff line description will only appear in submit template, so you can review what changed before actully submit to p4. I don't know if add any message here will be helpful for users, so I choose to just skip binary content, since it already append filename previously. Signed-off-by: dorgon.chang <dorgonman@hotmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-p4.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/git-p4.py b/git-p4.py
index d34a1946b7..2b4500226a 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1977,8 +1977,11 @@ class P4Submit(Command, P4UserMap):
newdiff += "+%s\n" % os.readlink(newFile)
else:
f = open(newFile, "r")
- for line in f.readlines():
- newdiff += "+" + line
+ try:
+ for line in f.readlines():
+ newdiff += "+" + line
+ except UnicodeDecodeError:
+ pass # Found non-text data and skip, since diff description should only include text
f.close()
return (diff + newdiff).replace('\r\n', '\n')