2015-12-04 4 views
7

Uruchomiłem ten skrypt powłoki za każdym razem, gdy robię git commit -m "msg", który zapisuje dziennik zatwierdzenia do pliku php. Chcę, aby zawierała również bieżący komunikat zatwierdzenia, który robię w tym czasie.Używanie haka Git do tworzenia dziennika zatwierdzeń i dodawania bieżącego zatwierdzenia

mój skrypt:

#!/bin/sh 
path="path/to/gitlog.php" 
echo "<?php $git_log = array(" > $path 
git log --date=iso --pretty=format:'array("%h","%an","%ad","%s"),' >> $path 
echo ");" >> $path 

gitlog.php zostanie zapisany w moim repozytorium, które będzie następnie git push ja.

Obecnie mam go w hakowaniu "przed popełnieniem błędu", czy istnieje sposób, aby uzyskać przesłanie wiadomości w tym haczyku?

Mój przypadek użycia

jestem jedyny deweloper w projekcie. Czas jest krótki! to dla innych, którzy są zaangażowani w projekt, aby zobaczyć postępy i przeczytać opisowe dzienniki zatwierdzeń bez obawy, że muszę się podwoić. Dziennik jest wysyłany do panelu kontrolnego, do którego wszyscy mają dostęp.

Git nie jest uruchomiony na serwerze na desce rozdzielczej, a pliki są wdrażane z repozytorium firmy hostingowej (łodygi)

+0

Hak przed zatwierdzeniem działa przed zatwierdzeniem, więc nie może zawierać samego zatwierdzenia. Możesz dokonać nowego, dodatkowego zatwierdzenia * po * dokonaniu zatwierdzenia, a nawet możesz uczynić to nowe zatwierdzenie innym rodzicem niż ostatnie zatwierdzenie (tak działa 'git commit --amend'), ale nie możesz zmienić istniejącego zatwierdzenia. Jeśli próbujesz dołączyć informacje o wersji, zwykłą metodą z git jest zachowanie tego pliku poza git, szczególnie jeśli cały plik jest generowany z zatwierdzenia (jak ten byłby). Aby wyświetlić stare zatwierdzenie, sprawdź to, a następnie uruchom "generuj wersję". – torek

+0

@torek, thks - czy nie ma haka, który zostanie wywołany przed wykonaniem faktycznego zatwierdzenia, i zostanie przekazany dane wiadomości, że mogę ręcznie dołączyć komunikat zatwierdzenia i datę do dziennika, ponownie wykonać "dodanie git". " i wreszcie kontynuować z popełnieniem? – digout

+0

Aha, tak, istnieje hak 'commit-msg'. Ma to na celu umożliwienie zmiany wiadomości (w celu sformatowania standardów) lub odrzucenie zatwierdzenia, jeśli wiadomość jest błędna. Nigdy nie używałam tego haka samodzielnie, ale działa on we właściwym momencie procesu zatwierdzania. Polecam nie robić 'git add .' (który może dodawać pliki, które celowo zostawiasz zmodyfikowane, ale nie wystawiane), ale' git add $ path' może również działać tutaj. (Proponuję także testowanie z zatwierdzeniami konkretnych plików i/lub 'git commit -a', aby sprawdzić, czy działa poprawnie.) – torek

Odpowiedz

0

Biorąc pod uwagę Twój przypadek użycia, chciałbym zaproponować:
przenieść hak pre-commit na lokalnym komputerze do post-checkout hak na serwerze desce rozdzielczej (wyobrażam sobie tam jest klonem repo za tym miejscu deski rozdzielczej?)

+0

Nie, pliki są wdrażane na "serwerze pulpitu nawigacyjnego" od hosta repo (Beanstalk) – digout

1

Innym rozwiązaniem mogłoby być stworzenie odpowiedniego haka, który pisze changelog do pliku poza swoim repo, a następnie przesyła plik do miejsca dostępnego dla użytkowników zewnętrznych . Nie musisz wtedy wprowadzać zmian, co jest przyczyną problemów.

Powiązane problemy