]> git.ipfire.org Git - thirdparty/git.git/commit - git-p4.py
git-p4: preserve utf8 BOM when importing from p4 to git
authorTao Klerks <tao@klerks.biz>
Mon, 4 Apr 2022 05:50:36 +0000 (05:50 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Apr 2022 19:59:58 +0000 (12:59 -0700)
commitfbe5f6b80437adbcd58af1b3751b830910a2ddaa
tree21ee632bc2823430943d7f5ff4af33591a06637f
parentfaa21c10d44184f616d391c158dcbb13b9c72ef3
git-p4: preserve utf8 BOM when importing from p4 to git

Perforce has a file type "utf8" which represents a text file with
explicit BOM. utf8-encoded files *without* BOM are stored as
regular file type "text". The "utf8" file type behaves like text
in all but one important way: it is stored, internally, without
the leading 3 BOM bytes.

git-p4 has historically imported utf8-with-BOM files (files stored,
in Perforce, as type "utf8") the same way as regular text files -
losing the BOM in the process.

Under most circumstances this issue has little functional impact,
as most systems consider the BOM to be optional and redundant, but
this *is* a correctness failure, and can have lead to practical
issues for example when BOMs are explicitly included in test files,
for example in a file encoding test suite.

Fix the handling of utf8-with-BOM files when importing changes from
p4 to git, and introduce a test that checks it is working correctly.

Signed-off-by: Tao Klerks <tao@klerks.biz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-p4.py
t/t9802-git-p4-filetype.sh