git-p4: fix git-p4.mapUser on Windows
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 in10d08a149d
("git-p4: map a P4 user to Git author name and email address", 2016-03-01) This issue should be caught by the test introduced in10d08a1
, 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> Reviewed-by: Luke Diamand <luke@diamand.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ad36dc8b4b
commit
c3c2b05776
@ -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]
|
||||
|
Loading…
Reference in New Issue
Block a user