]> git.ipfire.org Git - thirdparty/git.git/commit - git-p4.py
git-p4: fix git-p4.mapUser on Windows
authorGeorge Vanburgh <gvanburgh@bloomberg.net>
Wed, 25 Jan 2017 09:17:29 +0000 (09:17 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 30 Jan 2017 17:05:09 +0000 (09:05 -0800)
commitc3c2b057767c037b32a276e14bf563383ce82e39
tree68cb8213a3128a9ab810b19c2cd9a874f8426e31
parentad36dc8b4b165bf9eb3576b42a241164e312d48c
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 in 10d08a149d ("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 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>
Reviewed-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-p4.py