Próbuję egzekwować niektóre zasady kodowania w moim zespole. W tym celu napisałem kilka haków po stronie klienta, które działają poprawnie, ale teraz chcę, aby te same kontrole były uruchamiane, gdy programista przesyła modyfikacje do centralnego repozytorium. Ale one nie działają.Haczyk serwera Git: czy zawartość plików jest wypychana?
Oto, co chcę zrobić:
chcę przemierzać popychane pliki linia po linii, należy sprawdzić kodowanie łamania konwencji i jeśli znajdę w ogóle odrzucić push, również pokazujący numery linii + naruszeń.
W moim pre-commit po stronie klienta, udało mi się zrobić wywołując git diff --cached --name-status --diff-filter=AM
aby otrzymać listę zmienionych plików, a git cat-file -p :filename
dla każdego z plików pobranych w pierwszym naborze, aby cały tekst plików.
Kiedy próbuję zrobić to samo w moim haku po stronie serwera update
, otrzymuję pusty ciąg (dla listy plików).
Próbowałem też dzwoniąc git show --pretty="format:" --name-only newrev
(gdzie newrev jest SHA otrzymuję jako parametr do haka aktualizacji, git diff-tree -r --name-only --no-commit-id <tree-ish>
i niektórych innych rzeczy znaleźć w internecie, ale nie mogę się jasne zrozumienie tego, co się dzieje i co powinienem zadzwonić.
czy możesz mi pomóc?
Jakie są zalety korzystania z 'git Cat-file' nad' cat'. Próbowałem wyszukiwać, ale nie mogłem udowodnić ważnego powodu. –