git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: en/fast-export-encoding, was Re: What's cooking in git.git (May 2019, #01; Thu, 9)

From
Johannes Sixt <j6t@kdbg.org>
Date
May 10, 2019, 06:21 UTC
Message-ID
<f8eb246f-a936-e9df-4bb4-068b86a62baf@kdbg.org>
In-Reply-To
<CABPp-BGfLrggLTmo+9LuLH_iGJoRNv7SHATw4XQCNx4Rk6wc7g@mail.gmail.com>
Am 10.05.19 um 02:14 schrieb Elijah Newren:
Show 33 quoted lines
> Hi Johannes,
> 
> On Thu, May 9, 2019 at 1:46 PM Johannes Schindelin
> <Johannes.Schindelin@gmx.de> wrote:
>>
>> Hi Junio & Elijah,
>>
>> On Thu, 9 May 2019, Junio C Hamano wrote:
>>
>>> * en/fast-export-encoding (2019-05-07) 5 commits
>>>  - fast-export: do automatic reencoding of commit messages only if requested
>>>  - fast-export: differentiate between explicitly utf-8 and implicitly utf-8
>>>  - fast-export: avoid stripping encoding header if we cannot reencode
>>>  - fast-import: support 'encoding' commit header
>>>  - t9350: fix encoding test to actually test reencoding
>>>
>>>  The "git fast-export/import" pair has been taught to handle commits
>>>  with log messages in encoding other than UTF-8 better.
>>
>> This breaks on Windows, see
>> https://dev.azure.com/gitgitgadget/git/_build/results?buildId=8298&view=ms.vss-test-web.build-test-results-tab
>>
>> Sadly, I ran out of time looking at it in detail.
> 
> Thanks for the heads up, and for taking some time to check it out.
> The error doesn't seem obvious from the log.  Does Azure Pipelines
> have anything like CircleCI's "Debug with SSH" feature[1]?  (Where one
> can click a "Rerun job with SSH", and it'll restart the pipeline but
> also print out an ssh command someone can use to directly access the
> box on which the test is running, in order to be able to investigate.)
>  Failing that, assuming I can find a Windows system somewhere, is
> there a list of steps for setting up a development environment and
> building git on Windows?
I'll just tell you why things go wrong here:

In these cases, a byte that is intended to be an ISO8859-something characters is passed via the command line. This cannot work as intended on Windows, because the command line is not just a stream of bytes, but a string of characters. On Windows (and presumably also on macOS), the command line bytes are interpreted as UTF-8. As such, the bytes undergo some encoding conversions between UTF-8 and UTF-16LE. That cannot work when the bytes are not correct UTF-8 characters.

To make the tests pass you have to pass the ISO8859-something characters via a file.

-- Hannes
Previous: Elijah NewrenNext: Johannes Schindelin
Message 10 of 27 in “What's cooking in git.git (May 2019, #01; Thu, 9)”
  1. Junio C HamanoMay 8, 2019
  2. Denton LiuMay 8, 2019
  3. Elijah NewrenMay 8, 2019
  4. Phillip WoodMay 9, 2019
  5. Johannes SchindelinMay 10, 2019
  6. Phillip WoodMay 13, 2019
  7. Duy NguyenMay 9, 2019
  8. en/fast-export-encoding, was Re: What's cooking in git.git (May 2019, #01; Thu, 9)Johannes Schindelin, May 9, 2019
  9. Elijah NewrenMay 10, 2019
  10. Johannes SixtMay 10, 2019
  11. Johannes SchindelinMay 10, 2019
  12. nd/merge-quit, was Re: What's cooking in git.git (May 2019, #01; Thu, 9)Johannes Schindelin, May 9, 2019
  13. Duy NguyenMay 10, 2019
  14. Johannes SchindelinMay 13, 2019
  15. Johannes SchindelinMay 13, 2019
  16. Eric SunshineMay 13, 2019
  17. Johannes SchindelinMay 13, 2019
  18. tests: add a special setup where prerequisites failÆvar Arnfjörð Bjarmason, May 13, 2019
  19. Johannes SchindelinMay 14, 2019
  20. Ævar Arnfjörð BjarmasonMay 14, 2019
  21. Johannes SchindelinMay 14, 2019
  22. Ævar Arnfjörð BjarmasonMay 14, 2019
  23. Johannes SchindelinMay 14, 2019
  24. tests: mark two failing tests under FAIL_PREREQSÆvar Arnfjörð Bjarmason, Jun 20, 2019
  25. Johannes SchindelinJun 21, 2019
  26. Ævar Arnfjörð BjarmasonJun 21, 2019
  27. Junio C HamanoJun 21, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.