Zamykanie wielu problemów w Github za pomocą komunikatu o zatwierdzeniu

112

Wiem, że możesz zamknąć problemy, umieszczając closes #1lub fixes #1w komunikacie o zmianach. Jaki jest najlepszy sposób na zamknięcie wielu problemów w tym samym komunikacie dotyczącym zmiany?

Ponadto, wydaje się, że używając fixeszamiast closesnie tworzy link z commit wiadomość do tej kwestii, ale nie blisko tego problemu. O co w tym chodzi?

Rayne
źródło

Odpowiedzi:

160

Closes #1, closes #2, closes #3; rest of commit message.

Te closesklauzule mogą być w dowolnym miejscu w wiadomości i fixesjest ważny synonim:

This fixes a memory leak in foo() that closes #4,
also fixes #5 which is a duplicate.

Poniżej używany do pracy, ale w dzisiejszych czasach tylko referencje Problemy # 2 i # 3.

Closes #1, #2, #3

Jakob Borg
źródło
1
Wydaje mi się, że to nie działa, tylko zamyka pierwszą pozycję na liście, a nie pozostałe. Czy składnia zmieniła się od czasu tego postu? Wyszukałem w Google, ale wydaje się, że nie ma w tym dużej pomocy.
Mark Bell
1
Zgoda. Poprawki # 1, # 2 działają w odniesieniu do obu ... ale tylko zamyka # 1.
waldo
@waldo Myślę, że to zadziałało, kiedy to pisałem - a co teraz Closes #1, closes #2, closes #3? Rozległy i zbędny, tak, ale może działa?
Jakob Borg
Tak, „Poprawki nr 1 - Poprawki nr 2 - aktualny komunikat o zatwierdzeniu”. działa i ma jakiś sens (jeśli jest gadatliwy) - tj. wyraźnie zamykam i odsyłam (bez zamykania) do wielu różnych spraw z jednego komunikatu o zatwierdzeniu.
waldo
2
Masz jakiś pomysł, dlaczego zmienili zachowanie Closes #1, #2, #3? Uważam za śmieszne napisanie 10 closesplus liczby spraw, które mają być blisko, zamiast jednego zamknięcia i wszystkich kolejnych liczb. : - /
rbaleksandar
38

W odpowiedzi i komentarzu do tej odpowiedzi podano następujący format:

Zamyka # 1, zamyka # 2, zamyka # 3; Rzeczywisty komunikat dotyczący zatwierdzenia

Gdybym miał projekt, w którym warto wziąć udział i ktoś wysłałby pull request z takimi komunikatami o zmianach, odmówiłbym ściągnięcia bez względu na to, jak piękny byłby kod.

Możliwe, że jest to tylko kwestia moich osobistych preferencji i skończy się na tym, że zostaną pobici przez ludzi przyzwyczajeni do kompaktowych komunikatów o zmianach, które zaśmiecają podsumowania historii Git, ale wolałbym widzieć komunikaty o zmianach w formacie:

Podsumowanie wprowadzonej zmiany.

Naprawiono następujące błędy:
* Zmodyfikowany program ładujący błędy, poprawki nr 1
* Zwrócono niestały wskaźnik, poprawki nr 2
* Zastosowano nową grafikę do elementów gui, zamknięto nr 3

Poprosił o najlepszy sposób zamknięcia wielu spraw.

Zwróć również uwagę, że jeśli wypchniesz zatwierdzenie z komunikatem do innej gałęzi niż bieżąca domyślna gałąź repozytorium, pojawią się tylko odniesienia do problemów. Przeniesienie zatwierdzenia do gałęzi głównej zamknie problemy. Zobacz: Link do numeru wydania GitHub nie działa?

JNissi
źródło
Po prostu spróbowałem. Muszę być szczery, bardzo mi się to podoba!
Billy Coover,
9

Zwróć uwagę, że od stycznia 2013 r. „Zamykanie problemów za pomocą komunikatów dotyczących zatwierdzenia” uległo zmianie:

Teraz, kiedy wpiszesz " Fixes #33" w komunikacie dotyczącym zatwierdzenia, wydanie 33 zostanie zamknięte tylko wtedy, gdy zatwierdzenie zostanie scalone z domyślną gałęzią (zwykle master) .

Jest to bardzo przydatne, ponieważ oznacza, że ​​stan problemu otwarty / zamknięty będzie mapowany na domyślną gałąź.
Jeśli błąd nie zostanie naprawiony w domyślnej gałęzi, problem pozostanie otwarty.
Gdy zatwierdzenie z poprawką zostanie scalone z domyślną gałęzią, sprawa zostanie automatycznie zamknięta.

Możesz użyć dowolnego z tych słów kluczowych, aby zamknąć problem za pomocą komunikatu o zatwierdzeniu:

close, closes, closed, fixes, fixed

Jak ilustruje pytanie „ Zamykanie problemu GitHub podczas korzystania z innej gałęzi ”, na początku powoduje to pewne zamieszanie.

VonC
źródło
1

„Zamykanie problemów za pomocą słów kluczowych” to dokument z GitHub, który opisuje, jak zamykać problemy, tagi i jak zamykać wiele spraw.

Aby odpowiedzieć na Twoje pytania, odpowiedź z GitHub brzmi:

Zamykanie wielu spraw

Aby zamknąć wiele spraw, poprzedź każde odwołanie do problemu jednym z powyższych słów kluczowych. Aby słowo kluczowe zadziałało, musisz użyć słowa kluczowego przed każdym problemem, do którego się odwołujesz.

Na przykład, To zamyka # 34, zamyka # 23 i zamyka przykład_użytkownik / example_repo # 42, zamyka problemy # 34 i # 23 w tym samym repozytorium, a numer 42 w repozytorium „example_user / example_repo”.

Vlad Bezden
źródło