2016-07-19 11 views
1

Ich versuche, ein Perforce-Repository in ein Git-Projekt zu konvertieren, indem ich git-p4 benutze (mit git für Windows). Ich habe viele Bilder und möchte LFS für sie verwenden. Ich kann jedoch nicht scheinen, dass die Konfigurationseinstellung git-p4.largeFileExtensions mit mehreren Erweiterungen richtig funktioniert. Wenn ich ausführen folgendes:git-p4 und 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] . 

ich (wenn ich mehr als zwei verwenden, werden alle Paare eine ähnliche Warnung berichten):

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

Die .git/config Datei ist, was ich erwarten würde, ein Mehrwert-Eintrag für largeFileExtensions:

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

Die aber .gitattributes Datei erstellt sieht aus wie:

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

Mache ich etwas falsch, oder ist das largeFileExtensions Attribut anders formatiert?

Antwort

2

Dies scheint ein Problem mit Git für Windows zu sein, das falsche Zeilenendungen für Windows ausgibt. Wenn ich laufen:

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

es wird mir geben:

png\r 
jpg\r 

Im git-p4.py Skript, verwendet es split(os.linesep) die Ausgabe von der Kommandozeile zu spalten. Unter Windows, os.linesep = '\r\n', und damit die Zeilen nicht geteilt werden. Wenn ich stattdessen das Skript so ändere, dass es splitlines() verwendet, gibt es immer noch die Kollisionswarnungen, jedoch scheint es, als wäre das Tracking jetzt korrekt.