From: "dorgon.chang" <dorgonman@xxxxxxxxxxx> 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. Signed-off-by: dorgon.chang <dorgonman@xxxxxxxxxxx> --- git-p4: fix failed submit by skip non-text data files 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. I am using git-p4 with UnrealEngine game projects and this fix works for me. Signed-off-by: dorgon.chang dorgonman@xxxxxxxxxxx Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-977%2Fdorgonman%2Fdorgon%2Ffix_gitp4_get_diff_description-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-977/dorgonman/dorgon/fix_gitp4_get_diff_description-v1 Pull-Request: https://github.com/git/git/pull/977 git-p4.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/git-p4.py b/git-p4.py index 4433ca53de7e..29a8c202399a 100755 --- a/git-p4.py +++ b/git-p4.py @@ -1977,8 +1977,11 @@ def get_diff_description(self, editedFiles, filesToAdd, symlinks): 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 # Fond non-text data f.close() return (diff + newdiff).replace('\r\n', '\n') base-commit: d4a392452e292ff924e79ec8458611c0f679d6d4 -- gitgitgadget