2016-07-19 4 views
1

Я пытаюсь преобразовать репозиторий Perforce в git один, используя git-p4 (используя git для Windows). У меня много изображений, и я хотел бы использовать LFS для них. Тем не менее, я не могу заставить конфигурацию git-p4.largeFileExtensions работать с несколькими расширениями. Если я выполнить следующее:git-p4 и config git-p4.largeFileExtensions

git config  git-p4.largeFileSystem  GitLFS 
git config  git-p4.largeFileExtensions png 
git config --add git-p4.largeFileExtensions jpg 
git p4 clone --verbose //depot/[email protected] . 

я получаю (если я использую более двух, все пары сообщают аналогичное предупреждение):

WARNING: These git config values clash: 
    git config "git-p4.largefileextensions" = "png" 
    git config "git-p4.largefileextensions" = "jpg" 

Файл .git/config является то, что я ожидал бы, многозначная запись для largeFileExtensions:

[git-p4] 
     largeFileSystem = GitLFS 
     largeFileExtensions = png 
     largeFileExtensions = jpg 

однако .gitattributes файл, созданный выглядит следующим образом:

# 
# Git LFS (see https://git-lfs.github.com/) 
# 
*.png 
jpg filter=lfs -text 

Я что-то не так, или атрибут largeFileExtensions отличается от другого?

ответ

2

Похоже, проблема связана с тем, что git для Windows выводит неверные окончания строк для Windows. Если я бегу:

git config --get-all git-p4.largeFileExtensions 

это даст мне:

png\r 
jpg\r 

В git-p4.py сценарий, он использует split(os.linesep) для разделения вывода из командной строки. В Windows, os.linesep = '\r\n', и, следовательно, линии не разделяются. Если я изменил сценарий на использование splitlines(), то он все равно дает предупреждения о столкновении, однако кажется, что отслеживание теперь корректно.