On Mon, Nov 05, 2018 at 07:10:14PM +0100, Torsten Bögershausen wrote: > On Mon, Nov 05, 2018 at 05:24:39AM +0100, Adrián Gimeno Balaguer wrote: > > [] > > > https://github.com/git/git/pull/550 > > [] > > > This is covered in the mentioned PR above. Thanks for feedback. > > Thanks for the code, > I will have a look (the next days) > > > > > -- > > Adrián Hej Adrián, I still didn't manage to fully understand your problem. I tried to convert your test into my understanding, It can be fetched here (or copied from this message, see below) https://github.com/tboegi/git/tree/tb.181106_UTF16LE_commit The commit of an empty file seems to work for me, in the initial report a "rebase" was mentioned, which is not in the TC ? Is the following what you intended to test ? #!/bin/sh test_description='UTF-16 LE/BE file encoding using working-tree-encoding' . ./test-lib.sh # We specify the UTF-16LE BOM manually, to not depend on programs such as iconv. utf16leBOM=$(printf '\377\376') test_expect_success 'Stage empty UTF-16LE file as binary' ' >empty_0.txt && echo "empty_0.txt binary" >>.gitattributes && git add empty_0.txt ' test_expect_success 'Stage empty file with enc=UTF.16BL' ' >utf16le_0.txt && echo "utf16le_0.txt text working-tree-encoding=UTF-16BE" >>.gitattributes && git add utf16le_0.txt ' test_expect_success 'Create and stage UTF-16LE file with only BOM' ' printf "$utf16leBOM" >utf16le_1.txt && echo "utf16le_1.txt text working-tree-encoding=UTF-16" >>.gitattributes && git add utf16le_1.txt ' test_expect_success 'Dont stage UTF-16LE file with only BOM with enc=UTF.16BE' ' printf "$utf16leBOM" >utf16le_2.txt && echo "utf16le_2.txt text working-tree-encoding=UTF-16BE" >>.gitattributes && test_must_fail git add utf16le_2.txt ' test_expect_success 'commit all files' ' test_tick && git commit -m "Commit all 3 files" ' test_expect_success 'All commited files have the same sha' ' git ls-files -s --eol >tmp1 && sed -e "s! i/none.*!!" <tmp1 | uniq -u >actual && >expect && test_cmp expect actual ' test_done