Dlaczego git log --decorate
nie wyświetla więcej niż jednego tagu na zatwierdzenie?
EDYCJA : Charles Bailey wymyślił odpowiedź (przynajmniej w moim przypadku)
Zasadniczo miałem jeden tag, który wskazywał na inny tag, który wskazywał na zatwierdzenie. Z powodu tej dodatkowej warstwy pośredniej tag nie pojawiał się w dzienniku. Będę musiał to naprawić, uschnąć, naprawiając nasz skrypt tagowania, aby tagował poprawnie, lub przez jakiś skrypt powłoki voodoo, aby rekurencyjnie podążać za tagami. W każdym razie zostawię to pytanie tylko w celach informacyjnych, na wypadek, gdyby ktoś tego chciał. (Jestem nowy w przepełnieniu stosu, ale zakładam, że jest to właściwy protokół?)
... Pojawia się oryginalne pytanie ...
Backstory: Używamy GIT w pracy do kontroli źródła i mamy zasadę, że zawsze tagujemy zatwierdzenie podczas wdrażania. (W rzeczywistości jest to skrypt, który wykonuje tagi, a następnie pobiera tag z serwera). Ponieważ jest to aplikacja internetowa z oddzielnymi serwerami pomostowymi i produkcyjnymi, często oznaczamy wydanie do testowania (do testowania lub cokolwiek innego), a następnie oznaczamy to samo zatwierdzenie do produkcji.
W rzeczywistości bardzo często mamy wiele tagów na tym samym zatwierdzeniu. Byłoby bardzo miło móc zobaczyć to w dzienniku tekstowym, ale wydaje się, że to nie obsługuje. Obecnie pracuję nad tym problemem, ręcznie sprawdzając szukany tag lub uruchamiając się gitk
. Chociaż oba te rozwiązania działają, wydaje mi się, że to naprawdę dziwne, git log --decorate
aby domyślnie obsługiwać tylko jeden tag na zatwierdzenie.
Poszperałem w Google, ale niewiele znalazłem. Czy brakuje mi czegoś oczywistego?
PS (Właściwie używam niestandardowego ciągu formatu z %d
, zgodnie ze stronami podręcznika i kilkoma szybkimi testami, jest on równoważny --decorate
)
Odpowiedzi:
Uwaga dotycząca tagu tagu (tagowania tagu), który jest źródłem twojego problemu, jak słusznie zauważył Charles Bailey w komentarzu:
Upewnij się, że przestudiowałeś ten wątek , ponieważ nadpisanie podpisanego tagu nie jest takie łatwe:
git tag
strona podręcznika poważnie odradzała prostągit tag -f B
zamianę nazwy znacznika „A
”nie próbuj odtwarzać podpisanego tagu za pomocą
git tag -f
(zobacz fragment wątku poniżej)(chodzi o przypadek narożny, ale ogólnie dość pouczający o tagach i pochodzi od innego współpracownika SO, Jakuba Narębskiego ):
źródło
Ta wersja wydrukuje również komunikat o zatwierdzeniu:
źródło
Uwaga: zatwierdzenie 5e1361c z Brian
bk2204
M. carlson ( ) (dla git 1.9 / 2.0 Q1 2014) zajmuje się specjalnym przypadkiem związanym z dekoracją dziennika za pomocą tagów:log: prawidłowo obchodź się z dekoracjami za pomocą zawieszonych metek
Przykład:
źródło