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.
version-control
prasonscala
źródło
źródło
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 .
źródło
ten, z którego wszyscy będziecie korzystać konsekwentnie
[osobiście lubię Mercurial]
źródło
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.
źródło
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.).
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło