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

[PATCH v2] git-p4: Fix git-p4.mapUser on Windows

From
George Vanburgh <george@vanburgh.me>
Date
Jan 25, 2017, 09:17 UTC
Message-ID
<01020159d4ea6861-fce45d61-8be5-49b0-ab4e-d161b9429795-000000@eu-west-1.amazonses.com>
In-Reply-To
<01020159c0e82598-e373cf0d-2bad-41bb-b455-6896ad183e22-000000@eu-west-1.amazonses.com>
From: George Vanburgh <gvanburgh@bloomberg.net>

When running git-p4 on Windows, with multiple git-p4.mapUser entries in git config - no user mappings are applied to the generated repository.

Reproduction Steps:
1. Add multiple git-p4.mapUser entries to git config on a Windows
   machine
2. Attempt to clone a p4 repository
None of the user mappings will be applied.

This issue is actually caused by gitConfigList, using split(os.linesep) to convert the output of git config --get-all into a list. On Windows, os.linesep is equal to '\r\n' - however git.exe returns configuration with a line seperator of '\n'. This leads to the list returned by gitConfigList containing only one element - which contains the full output of git config --get-all in string form, which causes problems for the code introduced to getUserMapFromPerforceServer in 10d08a1.

This issue should be caught by the test introduced in 10d08a1, however would require running on Windows to reproduce.

Using splitlines solves this issue, by splitting config on all typical delimiters ('\n', '\r\n' etc.)

Signed-off-by: George Vanburgh <gvanburgh@bloomberg.net>
---
 git-p4.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/git-p4.py b/git-p4.py
index f427bf6..b66f68b 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -656,7 +656,7 @@ def gitConfigInt(key):
 def gitConfigList(key):
     if not _gitConfig.has_key(key):
         s = read_pipe(["git", "config", "--get-all", key], ignore_error=True)
-        _gitConfig[key] = s.strip().split(os.linesep)
+        _gitConfig[key] = s.strip().splitlines()
         if _gitConfig[key] == ['']:
             _gitConfig[key] = []
     return _gitConfig[key]

--
https://github.com/git/git/pull/319
Previous: George VanburghNext: Junio C Hamano
Message 6 of 9 in “git-p4: Fix git-p4.mapUser on Windows”
  1. git-p4: Fix git-p4.mapUser on WindowsGeorge Vanburgh, Jan 21, 2017
  2. Lars SchneiderJan 21, 2017
  3. George VanburghJan 21, 2017
  4. Luke DiamandJan 22, 2017
  5. George VanburghJan 22, 2017
  6. git-p4: Fix git-p4.mapUser on WindowsGeorge Vanburgh, Jan 25, 2017
  7. Junio C HamanoJan 27, 2017
  8. Luke DiamandJan 29, 2017
  9. Junio C HamanoJan 30, 2017

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.