Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Baumann <moritz.baumann@sap.com>2022-07-20 21:17:45 +0300
committerJunio C Hamano <gitster@pobox.com>2022-07-20 21:38:06 +0300
commit4d35f744219335d8b32df363891b6336dcf02a6e (patch)
tree49025a6a2bd038dc89b108d4c4d1707bd4ecb659 /git-p4.py
parentbbea4dcf42b28eb7ce64a6306cdde875ae5d09ca (diff)
git-p4: fix CR LF handling for utf16 files
Perforce silently replaces LF with CR LF for "utf16" files if the client is a native Windows client. Since git's autocrlf logic does not undo this transformation for UTF-16 encoded files, git-p4 replaces CR LF with LF during the sync if the file type "utf16" is detected and the Perforce client platform indicates that this conversion is performed. Windows only runs on little-endian architectures, therefore the encoding of the byte stream received from the Perforce client is UTF-16-LE and the relevant byte sequence is 0D 00 0A 00. Signed-off-by: Moritz Baumann <moritz.baumann@sap.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-p4.py')
-rwxr-xr-xgit-p4.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/git-p4.py b/git-p4.py
index 8fbf6eb1fe..0a9d7e2ed7 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -3148,7 +3148,7 @@ class P4Sync(Command, P4UserMap):
raise e
else:
if p4_version_string().find('/NT') >= 0:
- text = text.replace(b'\r\n', b'\n')
+ text = text.replace(b'\x0d\x00\x0a\x00', b'\x0a\x00')
contents = [text]
if type_base == "apple":