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

Re: [PATCH 00/13] git-p4: python3 compatibility

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Dec 9, 2019, 19:48 UTC
Message-ID
<nycvar.QRO.7.76.6.1912092043470.31080@tvgsbejvaqbjf.bet>
In-Reply-To
<ec301179-f9dc-4148-8634-2abc9263af5f@gmail.com>
Hi Ben,
On Mon, 9 Dec 2019, Ben Keene wrote:
> So, I just attempted to run a base case on windows: git p4 clone //depot and
> I'm getting an error:
>
> Depot paths must start with "//": /depot
You started this in a Bash, right?

The Git Bash has the very specific problem that many of Git's shell scripts assume that forward slashes are directory separators, not backslashes, and that absolute paths start with a single forward slash. In other words, they expect Unix paths.

But we're on Windows! So the MSYS2 runtime (which is the POSIX emulation layer derived from Cygwin which allows us to build and run Bash on Windows) "translates" between the paths. For example, if you pass `/depot` as a parameter to a Git command, the MSYS2 runtime notices that `git.exe` is not an MSYS2 program (i.e. it does not understand pseudo-Unix paths), and translates the path to `C:/Program Files/Git/depot`.

However, your call has _two_ slashes, right? That is unfortunately MSYS2's trick to say "oh BTW keep the slash, this is not a Unix path".

To avoid this, just set `MSYS_NO_PATHCONV`, like so:
	MSYS_NO_PATHCONV=1 git p4 clone //depot

This behavior is documented in our release notes, by the way: https://github.com/git-for-windows/build-extra/blob/master/ReleaseNotes.md#known-issues

Ciao, Johannes

Previous: Ben KeeneNext: Ben Keene
Message 29 of 33 in “git-p4: python3 compatibility”
  1. 00/13 git-p4: python3 compatibilityYang Zhao, Dec 7, 2019
  2. 01/13 ci: also run linux-gcc pipeline with python-3.7 environmentYang Zhao, Dec 7, 2019
  3. SZEDER GáborDec 10, 2019
  4. Yang ZhaoDec 10, 2019
  5. SZEDER GáborDec 12, 2019
  6. Yang ZhaoDec 12, 2019
  7. SZEDER GáborDec 12, 2019
  8. Yang ZhaoDec 12, 2019
  9. 02/13 git-p4: make python-2.7 the oldest supported versionYang Zhao, Dec 7, 2019
  10. 03/13 git-p4: simplify python version detectionYang Zhao, Dec 7, 2019
  11. 04/13 git-p4: decode response from p4 to str for python3Yang Zhao, Dec 7, 2019
  12. 05/13 git-p4: properly encode/decode communication with git for python 3Yang Zhao, Dec 7, 2019
  13. 06/13 git-p4: open .gitp4-usercache.txt in text modeYang Zhao, Dec 7, 2019
  14. 06/13 git-p4: convert path to unicode before processing themYang Zhao, Dec 7, 2019
  15. 07/13 git-p4: convert path to unicode before processing themYang Zhao, Dec 7, 2019
  16. 07/13 git-p4: open .gitp4-usercache.txt in text modeYang Zhao, Dec 7, 2019
  17. 09/13 git-p4: fix freezing while waiting for fast-import progressYang Zhao, Dec 7, 2019
  18. 08/13 git-p4: use marshal format version 2 when sending to p4Yang Zhao, Dec 7, 2019
  19. 10/13 git-p4: use functools.reduce instead of reduceYang Zhao, Dec 7, 2019
  20. 11/13 git-p4: use dict.items() iteration for python3 compatibilityYang Zhao, Dec 7, 2019
  21. 13/13 git-p4: use python3's input() everywhereYang Zhao, Dec 7, 2019
  22. 12/13 git-p4: simplify regex pattern generation for parsing diff-treeYang Zhao, Dec 7, 2019
  23. Denton LiuDec 7, 2019
  24. Yang ZhaoDec 7, 2019
  25. Ben KeeneDec 7, 2019
  26. Yang ZhaoDec 7, 2019
  27. Ben KeeneDec 9, 2019
  28. Ben KeeneDec 9, 2019
  29. Johannes SchindelinDec 9, 2019
  30. Ben KeeneDec 10, 2019
  31. Yang ZhaoDec 9, 2019
  32. Ben KeeneDec 13, 2019
  33. Yang ZhaoDec 7, 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.