Filtr git smudge/clean¶
Przegląd¶
Filtr git smudge/clean automatycznie formatuje pliki przy commicie (clean) i opcjonalnie przywraca oryginalne zawijanie przy checkout (smudge). Dzięki temu semantyczne podziały wierszy są przezroczyste dla współpracowników, którzy nie używają snappera.
Konfiguracja¶
Skonfiguruj filtr w lokalnej konfiguracji git:
git config filter.snapper.clean "snapper --format org"
git config filter.snapper.smudge cat
Filtr smudge używa cat (przepuszczanie), co oznacza, że pobrane pliki zachowują semantyczne podziały wierszy. Jeśli chcesz przywrócić tradycyjne zawijanie przy checkout, zastąp cat poleceniem zawijającym.
Aktywacja przez .gitattributes¶
Dodaj do pliku .gitattributes w swoim repozytorium:
*.org filter=snapper
*.tex filter=snapper
*.md filter=snapper
Zacommituj .gitattributes, aby udostępnić go współpracownikom. Filtr aktywuje się tylko u osób, które skonfigurowały go lokalnie.
Filtry według formatu¶
Jeśli potrzebujesz różnych ustawień dla poszczególnych formatów:
git config filter.snapper-org.clean "snapper --format org"
git config filter.snapper-org.smudge cat
git config filter.snapper-tex.clean "snapper --format latex"
git config filter.snapper-tex.smudge cat
*.org filter=snapper-org
*.tex filter=snapper-tex
Weryfikacja działania filtra¶
Po skonfigurowaniu dodaj plik do indeksu i sprawdź diff:
git diff --cached paper.org
Wersja w indeksie powinna pokazywać formatowanie jedno-zdanie-na-linię, nawet jeśli kopia robocza używa tradycyjnego zawijania.