Po przeczytaniu, że jestem maniakiem Subversion, dlaczego powinienem brać pod uwagę Mercurial, Git lub inne DVCS .
Mam powiązane pytanie uzupełniające. Czytam to pytanie, czytam polecane linki i filmy i widzę korzyści, ale nie widzę ogólnej zmiany myślenia, o której mówią ludzie.
Nasz zespół składa się z 8-10 programistów pracujących na jednej dużej bazie kodu składającej się z 60 projektów. Używamy Subversion i mamy główny bagażnik. Gdy programista rozpoczyna nową sprawę Fogbugz, tworzy gałąź svn, wykonuje pracę nad gałęzią, a po zakończeniu łączy z powrotem do pnia. Czasami mogą pozostać na gałęzi przez dłuższy czas i połączyć pień z gałęzią, aby odebrać zmiany.
Kiedy patrzyłem, jak Linus mówi o ludziach tworzących oddział i nigdy więcej tego nie robią, to wcale nie jesteśmy my. Bez problemu tworzymy prawdopodobnie 50-100 oddziałów tygodniowo. Największym wyzwaniem jest połączenie, ale udało nam się też całkiem nieźle. Staram się łączyć przez case & checkin fogbugz zamiast całego katalogu głównego gałęzi.
Nigdy nie pracujemy zdalnie i nigdy nie tworzymy gałęzi z gałęzi. Jeśli jesteś jedyną osobą pracującą w tej sekcji podstawy kodu, scalanie z łączem głównym przebiega bezproblemowo. Jeśli ktoś inny zmodyfikował tę samą sekcję kodu, scalanie może stać się nieuporządkowane i może być konieczne wykonanie operacji. Konflikty są konfliktami, nie rozumiem, w jaki sposób jakikolwiek system mógłby to zrobić przez większość czasu, chyba że byłby wystarczająco inteligentny, aby zrozumieć kod.
Po utworzeniu gałęzi następujące pobranie plików o rozmiarze ponad 60 KB zajmuje trochę czasu, ale byłby to problem z dowolnym systemem kontroli źródła, którego użyjemy.
Czy jest jakaś korzyść z jakiegokolwiek DVCS, którego nie widzimy, który byłby dla nas bardzo pomocny?