Wiem, że Git jest świetny do projektów typu open source. Zastanawiałem się jednak: dla firmy z 20 programistami pracującymi nad rocznym projektem, który system kontroli źródła jest pożądany? Z tego, co słyszałem, Git używa ciągnięcia; czy nie byłoby pożądane, aby przejść przez kogoś innego, aby uzyskać zmiany w głównym bagażniku? Zwłaszcza, gdy wszyscy pracują w tym samym czasie?
To tylko przykład, nad którym się zastanawiałem. Wiem, jak korzystać z SVN, ale nawet przy mojej ostatniej pracy nie korzystaliśmy z niego w naszych projektach, ponieważ wszystko zostało zrobione w PHP i były to zwykle samodzielne projekty 1-tygodniowe. Właśnie miałem SVN dla mojego lokalnego kodu i nie musiałem go używać z innymi.
Więc jakie są dobre kontrole źródeł, a konkretnie dlaczego to jest dobre?
źródło
Odpowiedzi:
Używaj tego, z czym czuje się twój zespół. Wszystkie systemy kontroli wersji robią mniej więcej to samo w podobny sposób; nie ma powodu, by wymyślać na nowo koło, ponieważ „może działać lepiej”. Jeśli twój zespół nie czuje się komfortowo z czymkolwiek, wybierz opcję, która ma najłatwiejszą integrację ze standardowym IDE twojego zespołu.
źródło
Mercurial jest doskonały, rozproszony i bezpłatny.
źródło
Myślę, że to zależy od tego, jakiego poziomu wsparcia potrzebujesz.
Używam git w domu do swoich fajnych projektów, gdy problem kosztuje mnie czas, ale mogę poświęcić czas na naukę, co muszę naprawić.
W pracy korzystamy z Perforce, ponieważ niezbędne jest wsparcie techniczne 24/7. Cały czas pracujemy nad kodem w Nowym Jorku, Niemczech, Irlandii i Japonii. Jeśli występuje problem, musimy jak najszybciej uzyskać odpowiedź. Z mojego doświadczenia wynika, że ludzie w Perforce naprawdę wiedzą, co robią i są otwarci na sugestie.
źródło
Chociaż uważam, że to pytanie jest szerokie i powinno dotyczyć poszczególnych firm, w oparciu o ramy IT i struktury sieci / rozwoju, uważam, że najważniejszym aspektem wyboru źródła / kontroli wersji nie jest to, z której aplikacji korzystasz, ale czy korzystanie z niego jest praktycznie ustrukturyzowane i egzekwowane.
Struktura i egzekwowanie użycia są najważniejszymi aspektami kontroli wersji.
Planuj z wyprzedzeniem i weź wszystkich na pokład. Wymuszaj użycie. Nie tylko z programistami, ale ze wszystkim, co dotyczy projektów (dokumenty, obrazy itp.).
SVN to świetna aplikacja, którą można zintegrować z wieloma dodatkami (w tym śledzenie błędów / zadań), nie wymaga osobnego serwera i jest bezpłatny!
Istnieją również inne dobre aplikacje do kontroli źródła, jak powiedział @EricBoersma:
Wystarczy wdrożyć procesy i najlepsze praktyki i odkupić się od tych, które mogą je egzekwować.
źródło
Masz poważne nieporozumienia na temat działania git. Wysłanie żądania ściągnięcia do strażnika jest tylko jednym ze sposobów. Istnieje wiele innych sposobów konfiguracji, w tym prawie tak samo jak svn, czyli dokładnie tyle osób, które zaczynają, zanim poczują się wystarczająco wygodnie, aby je dostosować. W przypadku DVCS, takich jak git, masz wystarczająco dużo opcji, aby uporządkować kontrolę źródła na podstawie przepływu pracy, a nie na odwrót.
źródło
Kiedyś uważałem, że kontrola źródła jest tylko narzędziem i że każdy z produktów działa mniej więcej tak samo. I wtedy punkt tych rozproszonych systemów kontroli wersji kliknął ze mną.
Rozproszona kontrola wersji pozwala mieć więcej niż jedno centralne repozytorium. Wyobraź sobie zmiany kodu migrujące z lokalnego repozytorium programisty, do repozytorium funkcji, do repozytorium produktu, do repozytorium kontroli jakości i wreszcie do zwolnionego repozytorium.
Osobiście używam komercyjnego produktu o nazwie Kiln, który jest oparty na Hg, ale kluczową funkcją jest rozproszona kontrola wersji . Rewolucjonizuje przepływ nowego kodu od dewelopera do wydanego produktu.
źródło
Wiesz, jak używać SVN, a następnie SVN - migruj do DVCS tylko wtedy, gdy jest w nich coś, czego potrzebujesz.
To, co jest naprawdę ważne, to korzystanie z czegoś, co lubisz, a które jest łatwe w użyciu. Martin Fowler przeprowadził szybką i prostą ankietę na temat VCS, wyniki są bardzo interesujące.
źródło
Skonfigurowałem git na mojej ostatniej pracy, w której pracowaliśmy nad projektem podobnej wielkości (15 programistów, projekt 18-miesięczny) i działało to dobrze.
Sposób, w jaki to skonfigurowaliśmy, to:
Mieliśmy serwer git, który był naszym scentralizowanym, autorytatywnym serwerem git. Członkowie zespołu byli zniechęcani do ściągania od siebie bezpośrednio, aby wszystkie zmiany przeszły na centralny serwer.
Używaliśmy gałęzi master jako głównej gałęzi produkcji, z tagami dla każdej wersji. Każdy moduł w projekcie był podmodułem git. Każdy podmoduł miał gałęzie dla każdego członka zespołu. Opiekun (zwykle pierwotny autor) został przypisany do każdego podmodułu i byli oni odpowiedzialni za obsługę żądań ściągania od innych członków zespołu oraz za wysyłanie żądań ściągania do kierownika zespołu, który aktualizowałby submoduł w głównym oddziale, gdy był gotowy do być zintegrowanym z branżą produkcyjną. Użyliśmy tagów do zidentyfikowania zatwierdzeń, które zakończyły określoną funkcję lub które odpowiadały wydaniu.
źródło
Chciałbym dać Team Foundation System (TFS) od Microsoft przynajmniej dobry wygląd. Biorę to z twoich komentarzy, że nie jesteś sklepem Microsoft. Rozumiem jednak, że jeśli używasz tego IDE do programowania, masz dość solidną wtyczkę Eclipse.
Mechanizmy łączenia i rozgałęziania działają tak samo dobrze, jak każdy inny system kontroli źródła (według mojego doświadczenia lepszy niż svn i mniej więcej tak dobry jak perforce), ale tak naprawdę wyróżnia się śledzenie projektu i aspekty zarządzania projektem produktu oraz wbudowana automatyzacja kompilacji i wdrożeń.
Jeśli piszesz aplikację internetową, zapoznaj się ze strukturą automatycznego testowania interfejsu użytkownika oraz ramą testowania obciążenia, którą możesz zbudować i skonfigurować w dość krótkim czasie. Jedna elegancka funkcja: symulowanie przeglądarek mobilnych wbudowanych w test obciążenia.
źródło