Czy możesz polecić dobry szablon komunikatu / wytyczne do egzekwowania w firmie? [Zamknięte]

38

W Git można ustawić i egzekwować dobry szablon zatwierdzania.

Czy możesz polecić (najlepiej z argumentacją) dobry szablon / wytyczne do egzekwowania w firmie?

kyrisu
źródło

Odpowiedzi:

42

używam

[Abc]: Message.

Dzięki Add, Mod (ify), Ref (aktorstwo), Fix, Rem (ove) i Rea (dability) łatwo jest wyodrębnić plik dziennika.

Przykład:

Add: New function to rule the world.  
Mod: Add women factor in Domination.ruleTheWorld().  
Ref: Extract empathy stuff to an abstract class.  
Fix: RUL-42 or #42 Starvation need to be initialised before Energy to avoid the nullpointer in People.  
Rem: freeSpeech is not used anymore.  
Rea: Removed old TODO and extra space in header.  

Jeśli mam więcej niż linię, najpierw sortuję je według najważniejszych.

Rangzen
źródło
1
+1 To dobry sposób na poradzenie sobie z tym i możesz łatwo pozyskać zmiany.
Sardathrion - Przywróć Monikę
12
EEk! Zabrałeś wolność słowa!
CaffGeek
1
Czy możesz wyjaśnić różnicę między Modi Ref? Czasami robię tylko małe poprawki, które są pewnego rodzaju refaktoryzacją.
yegle
2
@yegle Modpolega na dodawaniu czegoś lub zmianie zachowania, Refpolega na zmianie wewnętrznych elementów, które nie dodają żadnej funkcji, nie dodają API itp. Przykład: jeśli mam add(Object)funkcję i zaimplementuję add(List<Object>)funkcję, skomentuję Mod. Później usunąć powielania i używać bezpośrednio add(Object)w add(List<Object>)czym będę używał Ref.
rangzen
14

Używamy:

[Identyfikator biletu w JIRA]: [Wiadomość: Co zostało zrobione] Na przykład - ABC-123: Dodano możliwość konfigurowania prezentacji według regionu.

W takim przypadku z odpowiednią integracją będziesz mógł zmieniać / usuwać / dodawać pliki w swoim module do śledzenia problemów. Należy jednak pamiętać, że należy zapobiec coś takiego jak ABC-123: Gotowe lub ABC-123: Naprawiono za pomocą filtrów, jeśli to możliwe.

Andrey Taptunov
źródło
+1 za poprawki błędów, ale co z nowymi funkcjami? Chyba że wszystkie nowe funkcje są również tworzone w JIRA ...
Sardathrion - Przywróć Monikę
3
@Sardathrion - Osobiście stworzyłbym moduły śledzące dla nowej funkcjonalności w JIRA. Robimy to z Bugzillą, co zapewnia zespołowi testowemu (i wszystkim innym) dobrą widoczność wszystkiego, co jest publikowane, i minimalizuje liczbę wypadków, gdy nie zostały przetestowane / poddane przeglądowi kodu / cokolwiek innego.
Jon Hopkins,
@JonHopkins: Chociaż narzędzie do śledzenia błędów może być używane do nowych funkcji, może nie być idealnym narzędziem. Oczywiście, twój przebieg będzie się różnić ^ _ ~
Sardathrion - Przywróć Monikę
3
Doszedłem do miłości posiadające bilet przypisany do każdego commit (niektóre bilety można w łatwy mieć wiele zobowiązuje, oczywiście): jest to bardzo prosty sposób, aby uzyskać więcej informacji tła podczas sprawdzania kodu później. „Dlaczego to zrobili ?” o wiele łatwiej jest odpowiedzieć, gdy masz komentarz do zatwierdzenia i wpis śledzenia problemu.
Joachim Sauer
Czy nie lepiej zrobić bilet w oddzielnym oddziale?
Tamás Szelei
11

Istnieje jedna prosta zasada, którą jest konwencja, po której następuje wiele (jeśli nie wszystkie) SCM i większość narzędzi, które działają z SCM:

Pierwszy wiersz komunikatu zatwierdzenia jest krótkim streszczeniem, a reszta wiadomości zawiera szczegóły.

Dlatego większość narzędzi wyświetla tylko pierwszy wiersz i wyświetla całą wiadomość na żądanie.

Typowym niewłaściwym użyciem komunikatu zatwierdzenia jest wypunktowana lista zmian (pokazany zostanie tylko pierwszy punkt). Kolejnym niewłaściwym zastosowaniem jest napisanie długiej, szczegółowej wiadomości w jednym wierszu.

Tak więc, jeśli jest jedna rzecz do narzucenia, powiedziałbym, że jest to maksymalna długość pierwszej linii.

Barjak
źródło
Nigdy nie widziałem powodu, aby pisać długą szczegółową wiadomość zatwierdzenia w Git. Szczegółowe informacje znajdują się w narzędziu do śledzenia problemów, więc moje komunikaty zatwierdzeń są tylko jednym zdaniem opisów (małych) zmian, które wprowadziłem w tym zatwierdzeniu.
Marnen Laibow-Koser
9

Osobiście nigdy nie widziałem ogólnego szablonu zatwierdzania wartego użycia. Komentarz powinien zwięźle określać, jakie zmiany są związane np. Z jaką funkcją / poprawką błędu lub krótkie stwierdzenie, dlaczego wprowadzono zmiany.

Informacje o tym, co zostało popełnione, nie powinny być dołączane, może to zostać określone przez system SCM. Więcej informacji o błędach / funkcjach znajduje się tam, gdzie kiedykolwiek śledzone są błędy i funkcje.

Podczas aktualizacji raportu o błędzie po zatwierdzeniu uważam, że dobrze jest również podać wersję zatwierdzenia wraz z komentarzami w raporcie o błędzie. W ten sposób możesz znaleźć swoją drogę od komentarza do raportu o błędzie, a dla każdego komentarza w raporcie o błędzie możesz znaleźć to, co zostało popełnione, ale nie powielasz informacji, umieszczając je zarówno w raporcie o błędzie, jak i w komunikacie o zatwierdzeniu.

Następnie, przeglądając historię wersji pliku, masz ładne krótkie wiadomości opisujące historię, ale także wiesz, gdzie szukać więcej szczegółów raportów o błędach lub opisów zadań, aby uzyskać więcej szczegółów.

Alba
źródło
4
Wiele narzędzi błędów pozwala na bezpośrednie połączenie z wersją w narzędziu SCM, jeśli podasz szczegóły we właściwym formacie. Podobnie wiele narzędzi SCM będzie łączyło się bezpośrednio z bazą błędów, jeśli wprowadzisz szczegóły błędu w poprawnym formacie. IMO, dopóki to robisz, jesteś złoty.
Dean Harding
4

W Git można egzekwować prawie wszystko za pomocą haków Git . Sprawdź przykłady w .git / hooks, aby znaleźć pomysły.

Jeśli chodzi o wiadomość, w bardzo ogólnym przypadku chcesz podać wystarczającą ilość informacji o rozwiązanym problemie ORAZ samo rozwiązanie, aby móc później znaleźć i zidentyfikować to zatwierdzenie. W większości przypadków problem będzie oznaczony numerem błędu (przy właściwej integracji z systemem śledzenia błędów). Jeśli masz inne systemy, z którymi proces się integruje (np. System śledzenia recenzji kodu), dołącz również odpowiednie bity:

Extracted checking foobar range from bar() into foo(min, max) to re-use
in yadda() and blah(). foo() returns true if foobar is in the
specified range and false otherwise.

BugID: 123456
ReviewedBy: mabuddy
AutomergeTo: none

ALE chcesz to uprościć. W przeciwnym razie ludzie znajdą sposób na oszukiwanie systemu i generowanie bezużytecznych komunikatów zatwierdzania.


źródło
0

Używamy szablonu zawierającego

  • Numer identyfikacyjny błędu / funkcji / poprawki
  • Tak / nie opisujące, czy kod jest testowany, czy nie
  • I sekcja ze szczegółami dla krótkiego opisu zamiaru zatwierdzenia

Pierwsze dwa są jednak najczęściej pomijane (czasami wszystkie trzy), więc to naprawdę nie jest wielka sprawa.

Nikt
źródło
0

Zasadniczo mam identyfikator, którego używam w systemie śledzenia biletów lub ogólny przegląd jako pierwszy wiersz. Następnie mam punkty „punktora” w wierszu konkretnej zmiany w zatwierdzeniu. Więc mógłbym coś takiego:

MyVideoGameProject-123 OR Inventory System Improvements
Made inventory GUI drap and drap
Added ability to have multiple bag slots to expand inventory capacity

To najczystszy format zatwierdzania, jaki lubię. Jest to bezpośrednie i na temat. Innym powodem, dla którego robię to w ten sposób, jest to, że jeśli chcę utworzyć dziennik zmian, mogę po prostu wziąć wszystkie komunikaty zmian i bardzo łatwo przeanalizować je w dzienniku zmian.

ryanzec
źródło
0

[ticketId] [ABC] [topicId] [WIP] Wiadomość, gdzie:

  • ticketId - identyfikator elementu w repozytorium zadań
  • ABC - dodaj (funkcja), popraw (poprawka błędu), str (struktura), dep (zależność) rem (niezgodność wsteczna / usuń), rea (czytelność), ref (refaktoryzacja)
  • topicId - może być selektorem zadań dla jenkins i / lub nazwy gałęzi i / lub nazwy tematu dla gerrit
  • WIP - praca w toku / nie (tj. Ciągła integracja może tego wymagać)
  • wiadomość - szczegół modyfikacji

Przykłady:
[# 452567] [dodaj] [menu_item] nowy element - księga gości
[# 452363] [fix] [banner_top] [WIP] 1024x300 można teraz użyć
[# 452363] [fix] [banner_top] 500x200 można teraz użyć
[ # 452713] [rem] [strona] wyszła środkowa reklama

Laplasz
źródło
Twoja odpowiedź byłaby silniejsza, gdybyś wyjaśnił, dlaczego uważasz, że jest to tak dobry format. Chociaż wartość tego formatu może być dla Ciebie oczywista, dla innych nie jest ona tak oczywista.
dzięki za komentarz - tak, wyjaśnię niedługo bardziej szczegółowo - chciałem zacząć od faktów - byłaby to dobra funkcja stosu, którą można podpisać za pomocą WIP :)
laplasz
W przypadku „Work In Progress” - czy jest to dla was notatka, że ​​wrócicie i poprawicie się, czy też zobowiązujecie się do tego opanować? Jeśli tak, dlaczego?
JBRWilkinson
Przepływ pracy CI może tego wymagać - więc
starasz