2015-12-21 8 views
6

Po prostu skonfigurowałem Git LFS dla projektu, a dla plików innych niż graficzne (na przykład skompilowane biblioteki) działa to świetnie. Ale wszystkie pliki .png i .jpg są wyświetlane jak zawsze zmodyfikowane, nawet jeśli próbuję je zresetować (git checkout --).Git LFS zawsze wyświetla pliki obrazów jako zmienione?

wpisy wszystkie wyglądają tak samo w .gitattributes:

*.jpg filter=lfs diff=lfs merge=lfs -text 
*.png filter=lfs diff=lfs merge=lfs -text 
*.so filter=lfs diff=lfs merge=lfs -text 

Wyjście git diff nie jest strasznie przydatne:

diff --git a/Design/faviconit/favicon.ico b/Design/faviconit/favicon.ico 
index 3202014..b5d3daf 100755 
Binary files a/Design/faviconit/favicon.ico and b/Design/faviconit/favicon.ico differ 

Nie jestem pewien, co inne kroki należy podjąć w celu zdiagnozowania problem. Czy ktoś w to wbiegł? Jakieś pomysły? Dzięki!

Aktualizacje:

To faktycznie nie jest wszystko pliki obrazów, tylko podzbiór z nich. Ale tylko pliki graficzne pokazują problem.

Próbowałem usunąć wszystkie problematyczne obrazy i przesłać to zatwierdzenie. Następnie na innym komputerze dodałem kilka plików i ponownie je pchnąłem. Kiedy wyciągnąłem nowe zmiany, mam ten sam problem: pliki natychmiast pokazują się jako zmodyfikowane. Pliki wyglądają poprawnie na dysku i są identyczne z oryginałami.

+0

Czy skonfigurowałeś git-lfs przed dodaniem plików do repozytorium lub po ich dodaniu? –

+0

Sądzę, że wszystkie te pliki znajdowały się w repozytorium przed skonfigurowaniem LFS. – starkos

+0

Właściwie to nie, wróciłem i sprawdziłem historię, a niektóre pliki zostały dodane po skonfigurowaniu LFS. – starkos

Odpowiedz

5

Po wielu odprawach i wyprowadzeniach oraz pchaniu i ciągnięciu z różnych maszyn w sieci, znaleźliśmy taki, w którym git lfs install nie został uruchomiony na lokalnej kopii roboczej. Tak więc pchał nieprzetworzone pliki binarne zamiast rekordów tekstowych LFS.

Aby to naprawić, musieliśmy uruchomić polecenie init, a następnie zatwierdzić i przesłać wszystkie uszkodzone pliki (po sprawdzeniu, że wykonaliśmy rekordy tekstu LFS, a nie same obrazy).

Mam nadzieję, że LFS może w pewnym momencie zostać dołączony do dystrybucji Git i uniknąć tego problemu.

0

Miałem podobne objawy śledzonego pliku LFS, zawsze wykazujące różnice. W moim przypadku plik był przechowywany w LFS, ale plik w pamięci podręcznej wydaje się być uszkodzony. Jeśli spojrzeć w .git/lfs/objects/ pliki danych są przechowywane przez sha256. Jeśli uruchamiasz plik sha256sum, powinien on mieć taką samą nazwę asocjacyjną jak nazwa, w moim przypadku różnią się one.

Można rozwiązać ten problem poprzez uruchomienie: git lfs fsck

Np

$ git lfs fsck 
Object MYPROBLEMFILE.data (9a963908a9b92d8c955dadbdb191d4d43f22d2a4c0e8dfadf1ce7c265d521f0b) is corrupt 
    moved to .git/XXX/lfs/bad/9a963908a9b92d8c955dadbdb191d4d43f22d2a4c0e8dfadf1ce7c265d521f0b 
$ git checkout master --force 
Already on 'master' 
Your branch is up-to-date with 'origin/master'. 
$ git lfs fsck 
Object MYPROBLEMFILE.data (9a963908a9b92d8c955dadbdb191d4d43f22d2a4c0e8dfadf1ce7c265d521f0b) could not be checked: no such file or directory 
$ git lfs pull 
Git LFS: (1 of 602 files) 33.72 MB/74.49 MB     
$ git lfs fsck 
Git LFS fsck OK 
Powiązane problemy