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

Re: [PATCH 2/2] git-p4: do not decode data from perforce by default

From
Andrew Oakley <andrew@adoakley.name>
Date
Apr 30, 2021, 08:53 UTC
Message-ID
<20210430095342.58134e4e@ado-tr>
In-Reply-To
<CAKu1iLXRrsB4mRsDfhBH5aahWzDjpfqLuWP9t47RMB=RdpL1iA@mail.gmail.com>

On Thu, 29 Apr 2021 03:00:06 -0700 Tzadik Vanderhoof <tzadik.vanderhoof@gmail.com> wrote:

Show 8 quoted lines
> However, on Windows, UTF-8 strings passed to "p4 submit -d" are
> somehow converted to the default Windows code page by the time they
> are stored in the Perforce database, probably as part of the process
> of passing the command line arguments to the Windows p4 executable.
> However, the "code page" data is *not* converted to UTF-8 on the way
> back from p4 to git-p4.py.  The only way to get it into UTF-8 is to
> call string.decode().  As a result, this patch, which takes out the
> call to string.decode() will not work on Windows.

Thanks for that explanation, the reencoding of the data on Windows is not something I was expecting. Given the behaviour you've described, I suspect that there might be two different problems that we are trying to solve.

The perforce depot I'm working with has a mixture of encodings, and commits are created from a variety of different environments. The majority of commits are ASCII or UTF-8, there are a small number that are in some other encoding. Any attempt to reencode the data is likely to make the problem worse in at least some cases.

I suspect that other perforce depots are used primarily from Windows machines, and have data that is encoded in a mostly consistent way but the encoding is not UTF-8. Re-encoding the data for git makes sense in that case. Is this the kind of repository you have?

If there are these two different cases then we probably need to come up with a patch that solves both issues.

For my cases where we've got a repository containing all sorts of junk, it sounds like it might be awkward to create a test case that works on Windows.

Previous: Tzadik VanderhoofNext: Luke Diamand
Message 4 of 13 in “git-p4: encoding of data from perforce”
  1. 0/2 git-p4: encoding of data from perforceAndrew Oakley, Apr 12, 2021
  2. 2/2 git-p4: do not decode data from perforce by defaultAndrew Oakley, Apr 12, 2021
  3. Tzadik VanderhoofApr 29, 2021
  4. Andrew OakleyApr 30, 2021
  5. Luke DiamandApr 30, 2021
  6. Tzadik VanderhoofApr 30, 2021
  7. Andrew OakleyMay 4, 2021
  8. Tzadik VanderhoofMay 4, 2021
  9. Junio C HamanoMay 5, 2021
  10. Tzadik VanderhoofMay 5, 2021
  11. Tzadik VanderhoofMay 5, 2021
  12. Junio C HamanoMay 5, 2021
  13. 1/2 git-p4: avoid decoding more data from perforceAndrew Oakley, Apr 12, 2021

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.