Sposób, w jaki działają systemy kontroli wersji, które znam, polega na tym, że każde zatwierdzenie jest przypisywane do jednego programisty. Rozwój Agile Engineering, a konkretnie programowania w parach, doprowadził do sytuacji, w której dwóch programistów wniosło znaczący wkład w to samo zadanie, na przykład poprawkę błędu.
Kwestia atrybucji nie będzie zbyt wielkim problemem w środowisku pracy, ponieważ kierownik projektu będzie świadomy pracy wykonywanej przez pary, ale co, jeśli dwóch współtwórców open source zdecyduje się połączyć w pary i wypchnąć trochę kodu do konkretnego projektu, który nie ma pojęcia, że pracują razem. Czy istnieje sposób, aby system kontroli wersji, taki jak Git, przypisał określoną poprawkę wielu programistom?
git
svn
version-control
bazaar
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
źródło
źródło
Odpowiedzi:
Jednym z problemów z tym podejściem jest to, że nie możesz utworzyć podpisanego klucza dla tej grupy programistów, więc zasadniczo możesz dodać kogokolwiek do tej listy, nawet jeśli nie pracował nad funkcją, a Github traktowałby to tak, jakby to robili. Jednak w większości przypadków nie powinno to stanowić problemu.
na przykład
Co-authored-by: Linus Torvalds <[email protected]>
W przypadku zwykłych autorów lub grup podpisujących (stara metoda) zobaczyłbyś, że nie jest podpisany i wiesz, że nie możesz ufać zatwierdzeniu. Jednak nie ma procesu podpisywania współautorów.
Przeważnie nieaktualna odpowiedź:
Jednym z rozwiązań byłoby ustawienie nazwy dla pary:
Oto powiązany raport o błędzie z innymi tymczasowymi rozwiązaniami:
Błąd git-core: Git powinien obsługiwać wielu autorów do zatwierdzenia
źródło
git show <COMMIT_ID> --format=email
Konwencja git polega na użyciu współtworzenia na końcu komunikatu o zatwierdzeniu ( jądro git: Commit Message Conventions , odnosząc się do Openstack Commit Messages ). Jest to również jedno z rozwiązań dotyczących błędu git-core, o którym mowa w odpowiedzi Gerry'ego
W tym komentarzu z 5 maja 2010 roku Josh Triplett sugeruje również wdrożenie odpowiedniego wsparcia w git.
Jak zauważył Llopis w komentarzu, GitHub ogłosił wsparcie dla tego na swoim blogu 29 stycznia 2018: Commit with współautorzy ( szczegóły ).
źródło
Dla bazaru:
Nazwy te będą wyświetlane w dzienniku niezależnie od nazwy autora.
źródło
git-pair
https://github.com/pivotal/git_scripts#git-pair
Ten prosty skrypt od Pivotal do automatyzacji przypisywania programowania par Git.
Tworzysz taki
.pairs
plik jak:i wtedy:
zestawy:
dla Ciebie.
źródło
git rozróżnia zatwierdzenie
author
icommitter
[1]. Możesz go użyć jako obejścia, np. Podpisać siebie jakocommitter
i współautora jakoauthor
:W ten sposób zarówno Ty, jak i Twój współautor zostaniecie zapisani w historii git. Running
git log --format=fuller
, da ci coś takiego:[1] Różnica między autorem a autorem w Git?
źródło
Alternatywnie, istnieje projekt open source , którego jestem współtwórcą, na GitHub, który zapewnia dobry sposób na zrobienie tego z wiersza poleceń. Ten projekt pomaga ustawić alias w celu utworzenia współautorów zatwierdzeń w następujący sposób:
$ git co-commit -m "Commit message" --co "co-author <co-author-email>"
Korzystając z tego podejścia, możesz tworzyć wspólne zmiany bez interfejsu graficznego.
źródło
Dodajemy nasze nazwy do każdej wiadomości o zatwierdzeniu na końcu jako konwencję, np .:
Implemented cool feature <Aneesh | Hiren>
źródło
Co-Authored-By
której wspomniałem w osobnej odpowiedziWypróbuj git-mob , stworzyliśmy go do przypisywania współautorów do zatwierdzeń.
Na przykład
źródło
Większość narzędzi współautorów nie obsługuje autouzupełniania. Możesz wypróbować git-coco , jest napisany w python3 (jestem programistą).
git-coco
obsługuje autouzupełnianie i autosugestię. Oto autouzupełnianie migawek przykładowych autorówźródło