Chociaż używam i lubię DVCS do moich osobistych projektów i mogę całkowicie zobaczyć, jak to ułatwia zarządzanie wkładami do twojego projektu od innych (np. Twój typowy scenariusz Github), wydaje się, że dla „tradycyjnego” zespołu mogą wystąpić pewne problemy scentralizowane podejście stosowane w rozwiązaniach takich jak TFS, Perforce itp. („tradycyjny” mam na myśli zespół programistów w biurze pracujący nad jednym projektem, którego nikt nie „posiada”, potencjalnie każdy może dotknąć tego samego kodu).
Kilka z tych problemów przewidziałem na własną rękę, ale proszę, zapoznaj się z innymi rozważaniami.
W tradycyjnym systemie, gdy próbujesz sprawdzić swoją zmianę na serwerze, jeśli ktoś wcześniej zarejestrował zmianę będącą w konflikcie, jesteś zmuszony do scalenia, zanim będziesz mógł sprawdzić swoją zmianę. W modelu DVCS każdy programista sprawdza zmienia się lokalnie iw pewnym momencie wypycha do innego repozytorium. To repozytorium ma następnie gałąź tego pliku, którą zmieniły 2 osoby. Wydaje się, że teraz ktoś musi być odpowiedzialny za poradzenie sobie z tą sytuacją. Wyznaczona osoba w zespole może nie mieć wystarczającej wiedzy o całej bazie kodu, aby móc poradzić sobie z scalaniem wszystkich konfliktów. Więc teraz został dodany dodatkowy krok, w którym ktoś musi podejść do jednego z tych programistów, powiedzieć mu, aby pociągnął i wykonał scalenie, a następnie powtórzył (lub musisz zbudować infrastrukturę automatyzującą to zadanie).
Ponadto, ponieważ DVCS sprawia, że praca lokalna jest tak wygodna, jest prawdopodobne, że programiści mogliby zgromadzić kilka zmian w swoich lokalnych repozytoriach przed wypchnięciem, czyniąc takie konflikty bardziej powszechnymi i bardziej skomplikowanymi.
Oczywiście, jeśli wszyscy członkowie zespołu pracują tylko w różnych obszarach kodu, nie stanowi to problemu. Ale ciekawi mnie przypadek, w którym wszyscy pracują nad tym samym kodem. Wydaje się, że model scentralizowany zmusza do szybkiego i częstego rozwiązywania konfliktów, minimalizując potrzebę dokonywania dużych, bolesnych połączeń lub umożliwienia komukolwiek „policyjnego” głównego repozytorium.
Więc dla tych z was, którzy korzystają z DVCS ze swoim zespołem w biurze, jak sobie radzicie z takimi przypadkami? Czy odczuwasz negatywny wpływ na codzienny (lub bardziej prawdopodobny, tygodniowy) przepływ pracy? Czy są jeszcze jakieś względy, o których powinienem wiedzieć przed zaleceniem DVCS w moim miejscu pracy?