Rozwijamy nowy zespół bardzo małych rozmiarów (powiedzmy 2-5). Moje pytanie brzmi: jaki rodzaj kontroli wersji działa najlepiej dla tego rodzaju zespołów, scentralizowanych lub rozproszonych.
Rozwijamy nowy zespół bardzo małych rozmiarów (powiedzmy 2-5). Moje pytanie brzmi: jaki rodzaj kontroli wersji działa najlepiej dla tego rodzaju zespołów, scentralizowanych lub rozproszonych.
Odpowiedzi:
Rozproszone przez całą drogę, naprawdę nie ma już sensu scentralizowanego IMHO, szczególnie jeśli chodzi o rozwój zespołu.
Kolejny głos na Mercurial, bez kłopotów z konfiguracją pod Windows i bitbucket.org ma darmowe repozytoria (które mogą być prywatne) z nieograniczoną przestrzenią.
Jeśli planujesz pracować nad projektem open source, git i Github wydają się bardziej odpowiednie / popularne. Jeśli jednak nie zapuściłeś się w DVCS, polecam zacząć od Mercurial i tego niesamowitego przewodnika .
ten, z którego wszyscy będziecie korzystać konsekwentnie
[osobiście lubię Mercurial]
Prawdopodobnie najlepszą odpowiedzią jest „z czymkolwiek wygodnie”. Nawet podczas pracy nad osobistymi rzeczami używam Git. Wydaje się, że dobrze sobie radzi ze skalowaniem zarówno w górę, jak iw dół, a moje ograniczone doświadczenie z Mercurialem jest prawie takie samo.
Myślę, że powinieneś wybrać, z czym czujesz się komfortowo. W małym zespole nie będziesz mieć różnych drzew kodu (takich jak jądro Linuksa), więc centralne repozytorium jest OK. Ale możesz mieć tę konfigurację również z rozproszonym VCS. Wybrałbym więc popularność i osobiste doświadczenie. Popularne są SVN, git i Mercurial. Powinieneś zdecydować, które z nich najlepiej wykorzystać w zespole (doświadczenie, wsparcie narzędziowe w wybranym IDE itp.).
To naprawdę zależy od tego, czy twoi programiści opracują dużo kodu offline, czy nie, ale tylko wybierać pomiędzy rozproszonym lub scentralizowanym repozytorium, ponieważ jest to pierwsza rzecz, którą powinieneś zdecydować. Następnie, jeśli zdecydujesz, że scentralizowane podejście działa lepiej niż SVN, wystarczy. Z drugiej strony, jeśli wybierasz podejście rozproszone niż git, nawet w systemie Windows jest to wystarczająco dobre, ponieważ teraz masz żółwia git (ten sam interfejs, który istnieje również dla svn). Ponadto, nie licz tak bardzo na wsparcie IDE, ponieważ możesz spotkać się z nieprzyjemną niespodzianką, jeśli kiedykolwiek z niego skorzystasz, i może się okazać, że pliki, które nie powinny być zatwierdzane, są zatwierdzane w twoim imieniu przez IDE.
Zapytaj zespół, czy ktoś chce się tym zająć. O wiele lepiej jest mieć stabilny system i odpowiedzialną osobę, niż dobry system, gdy nikt się nim nie przejmuje i nikt nie jest w stanie przywrócić go z kopii zapasowej.
Jeśli jest taka osoba - będzie już wiedział, czego użyć, więc po prostu zaakceptuj jej decyzję. Jeśli nie - zdobądź rozwiązanie hostowane. Byłoby bardzo głupio wypróbować GIT (jeden z najlepszych), gdyby wszyscy programiści nigdy nie dotykali Shell / Linux.
To zależy również od liczby „nietechnicznych” osób, które muszą czytać / przyczyniać się. Tylko upewnij się, że mogą z niego skorzystać, a są dostępne narzędzia.
SVN jest szeroko obsługiwany w narzędziach. Kluczem jest oprzyrządowanie; różni ludzie będą mieli różne zestawy umiejętności. Niektórzy wolą wiersz poleceń, niektórzy wolą narzędzia oparte na IDE, inni wolą narzędzia graficzne. W tej chwili SVN wydaje się być najczęściej obsługiwanym narzędziem.
Inne niż ten Mercurial lub Git.
Myślę, że w małych firmach istnieją argumenty za scentralizowaniem niektórych spraw. (Pomyśl na przykład o zewnętrznym tworzeniu kopii zapasowych. Gdy tylko dwie osoby pracują nad projektem i mieszkają w tym samym budynku i wybuchł pożar, zdecentralizowane na wszystkich dwóch komputerach może nie wystarczyć).
Jednak: częściowo scentralizowane rozwiązanie nie ogranicza się do scentralizowanego systemu. Możesz po prostu wypchnąć serwer zewnętrzny za pomocą czegoś takiego jak git lub mercurial.