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

Re: [PATCH v2 04/14] git-p4: encode/decode communication with p4 for python3

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 17, 2019, 22:51 UTC
Message-ID
<xmqq1rt2ftv5.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20191213235247.23660-6-yang.zhao@skyboxlabs.com>
Yang Zhao <yang.zhao@skyboxlabs.com> writes:
Show 11 quoted lines
> The marshalled dict in the response given on STDOUT by p4 uses `str` for
> keys and string values. When run using python3, these values are
> deserialized as `bytes`, leading to a whole host of problems as the rest
> of the code assumes `str` is used throughout.
>
> This patch changes the deserialization behaviour such that, as much as
> possible, text output from p4 is decoded to native unicode strings.
> Exceptions are made for the field `data` as it is usually arbitrary
> binary data. `depotFile[0-9]*`, `path`, and `clientFile` are also exempt
> as they contain path strings not encoded with UTF-8, and must survive
> survive round-trip back to p4.
Doubled "survive"; will drop one of them while queuing.
Previous: Yang ZhaoNext: Yang Zhao
Message 13 of 22 in “git-p4: python3 compatibility”
  1. 00/14 git-p4: python3 compatibilityYang Zhao, Dec 13, 2019
  2. Yang ZhaoJan 17, 2020
  3. Luke DiamandJan 24, 2020
  4. Luke DiamandJan 30, 2020
  5. Luke DiamandFeb 3, 2020
  6. Yang ZhaoFeb 3, 2020
  7. Yang ZhaoFeb 4, 2020
  8. 01/14 git-p4: make python2.7 the oldest supported versionYang Zhao, Dec 13, 2019
  9. 02/14 git-p4: change the expansion test from basestring to listYang Zhao, Dec 13, 2019
  10. 05/14 git-p4: encode/decode communication with git for python3Yang Zhao, Dec 13, 2019
  11. 03/14 git-p4: remove string type aliasingYang Zhao, Dec 13, 2019
  12. 04/14 git-p4: encode/decode communication with p4 for python3Yang Zhao, Dec 13, 2019
  13. Junio C HamanoDec 17, 2019
  14. 08/14 git-p4: use marshal format version 2 when sending to p4Yang Zhao, Dec 13, 2019
  15. 07/14 git-p4: open .gitp4-usercache.txt in text modeYang Zhao, Dec 13, 2019
  16. 06/14 git-p4: convert path to unicode before processing themYang Zhao, Dec 13, 2019
  17. 09/14 git-p4: fix freezing while waiting for fast-import progressYang Zhao, Dec 13, 2019
  18. 10/14 git-p4: use functools.reduce instead of reduceYang Zhao, Dec 13, 2019
  19. 12/14 git-p4: simplify regex pattern generation for parsing diff-treeYang Zhao, Dec 13, 2019
  20. 11/14 git-p4: use dict.items() iteration for python3 compatibilityYang Zhao, Dec 13, 2019
  21. 14/14 ci: also run linux-gcc pipeline with python3.5 environmentYang Zhao, Dec 13, 2019
  22. 13/14 git-p4: use python3's input() everywhereYang Zhao, Dec 13, 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.