Chcę wybrać system kontroli wersji dla mojej firmy. Jak dotąd wiem, że mam Git, Subversion i Mercurial.
W dzisiejszych czasach widzę, że Git jest najczęściej używany, więc zastanawiam się: czy istnieje jakiś konkretny powód, aby nadal używać Subversion, czy powinienem przejść bezpośrednio do Git?
version-control
git
svn
użytkownik1179459
źródło
źródło
Odpowiedzi:
SVN wcale nie jest martwy. Jest nadal w bardzo szerokim użyciu i wkrótce nie będzie dostępny. SVN jest znacznie prostszy w użyciu niż rozproszona kontrola wersji, szczególnie jeśli nie prowadzisz rozproszonego projektu, który wymaga rozproszonej kontroli wersji.
Jeśli masz tylko jedno centralne repozytorium (to wszystko, czego Twoja firma będzie potrzebować, jeśli są jeszcze wystarczająco małe, aby poradzić sobie bez kontroli źródła), znacznie łatwiej jest używać SVN do interakcji z nim. Na przykład za pomocą SVN możesz pobrać zmiany z repozytorium lub zatwierdzić zmiany lokalne za pomocą jednej operacji, podczas gdy HG i Git wymagają dwóch lub trzech kroków, aby wykonać równoważną pracę.
Dzięki najnowszym wersjom SVN naprawił wiele problemów z wydajnością, które sprawiły, że ludzie wolą HG i Git. Jest teraz znacznie szybszy niż kilka lat temu, a na tym etapie naprawdę nie ma dobrego powodu, aby patrzeć na HG lub Git dla swojego projektu, chyba że faktycznie potrzebujesz zaawansowanych funkcji rozproszonej kontroli wersji.
źródło
Narzędzia klienta nie zostały jeszcze wspomniane. Z pewnością możesz zrobić wszystko za pomocą skryptu wiersza poleceń, ale integracja GUI może naprawdę zwiększyć wydajność.
Pracujemy głównie z Visual Studio; integracja z IDE jest zdecydowanie lepsza w SVN niż w Git. To może się zmienić w przyszłości, ale na pewno ważyłbym to w twojej decyzji tak samo, jak funkcje kontroli wersji.
Podobnie jak wszystko inne, system kontroli wersji nie jest celem samym w sobie, tylko narzędziem, które zabierze Cię tam, dokąd zmierzasz. Wybierz ten, który szybko Cię tam dostanie, w zależności od twojej sytuacji.
źródło
Jestem fanem Git. Niedawno musiałem przyznać, że jedną z wad Git jest to, że identyfikuje wersje za pomocą skrótów jako przeciwieństwo numerów wydanych przez svn. Numer wydania można łatwiej przekazać telefonicznie lub coś w tym rodzaju.
I to jedyny profesjonalista, jaki mogę sobie wyobrazić. Jeśli naprawdę chcesz polegać na tej funkcji, możesz mieć ją na rozproszonym i / lub scentralizowanym bazarze VCS . W Git są tagi, które mogą służyć do tego celu.
W każdym razie po prostu nie mogłem sobie wyobrazić rozwoju bez szybkiego przełączania gałęzi i ukrywania. Te dwie funkcje same pokonały SVN, gdzie do tej pory pamiętam, że to samo zadanie wymagało utworzenia i sprawdzenia całego drzewa w osobnych katalogach, aby osiągnąć ten sam cel.
Te tak zwane „zaawansowane funkcje rozproszonej kontroli wersji” przychodzą z czasem i nie musisz się ich uczyć na samym początku. Nie bój się ich. Są tutaj, aby ci pomóc, a nie przeszkadzać. I nie ma problemu z utworzeniem centralnego repozytorium dla DVCS.
źródło
Za pomocą SVN możesz łatwo wyewidencjonować części repozytorium aż do poziomu folderu, natomiast dzięki git dostajesz całe repozytorium, w tym całą historię.
W zależności od sytuacji może to mieć pewne zalety dla SVN
(ma to również pewne duże wady, takie jak ukryte śmieci „.svn” aż po drzewo folderów).
źródło
„Jeśli masz zadanie, które można wykonać w ciągu sześciu godzin, lepiej jest napisać narzędzie, które wykonuje je w 20 minut, nawet jeśli tworzenie narzędzia zajmuje sześć godzin?”
Kontrola wersji rozproszonej to inna bestia do rozwiązania. Wymaga to gruntownej nauki dla każdego programisty. Jeśli masz bufor do obsługi procesu uczenia się dla każdego programisty, powinieneś przejść do dobrego rozproszonego systemu kontroli wersji. Po zakończeniu fazy uczenia się rozproszona kontrola wersji jest znacznie lepsza niż scentralizowana kontrola wersji.
Rozproszona kontrola wersji wydaje się być ewentualnością. Jest tu na bardzo długo, lepiej, żebyśmy się do niego przystosowali wcześniej niż później. Pamiętam tę samą dyskusję, kiedy SVN był nowy i ludzie byli przyzwyczajeni do CVS, podano wiele argumentów za nieużywaniem SVN, ale ostatecznie SVN stał się najpopularniejszym systemem kontroli wersji.
Jeśli firma ma ugruntowaną pozycję z dużą ilością kodu źródłowego w istniejącym systemie kontroli wersji, przejście do nowego systemu jest dużym zadaniem, ale jeśli firma jest mała lub zaczyna działalność, przejście do nowej kontroli wersji jest bardzo łatwe. Ale jeśli pozostaniesz przy starszej kontroli wersji (w nowej konfiguracji), gdzieś w przyszłości trafisz na wąskie gardło, gdzie będziesz musiał ostatecznie zaplanować migrację kontroli wersji.
Widziałem wiele profesjonalnych komentarzy SVN, ale wszystkie mają charakter „SVN nie jest zły”, a nie „SVN jest lepszy”. Dlatego zdecydowanie zalecam wybranie rozproszonej kontroli wersji (takiej jak Git) dla swojego projektu.
EDYCJA Zalety GIT w stosunku do SVN
Nie jest wymagany serwer dedykowanyWłaściwie oba mogą być używane bez serwera.Ktoś wymienił oprzyrządowanie (dla studia wizualnego) jako powód, aby trzymać się SVN. http://gitscc.codeplex.com/ zapewnia obsługę GIT dla Visual Studio.
źródło
Once the learning phase is over Distributed Version Control is much better than Centralized Version Control.
Całkowicie się z tym nie zgadzam. W niektórych okolicznościach może mieć pewne odczuwalne korzyści, ale coś tak prostego, jak numer wersji w svn, który jest czytelny dla człowieka, jest ogromną korzyścią w wielu organizacjach.Oprócz obsługi narzędzi w IDE (których nie używam) - nie, nie. Oczywiście SVN może być bardziej znany, ale to jedyny powód, dla którego zarówno Hg, jak i Git są bardzo łatwe (i bardzo szybkie) do nauki.
Tak, istnieją wszystkie złożone przewodniki, które opisują, jak Git jest trywialny, gdy zrozumiesz, że gałęzie są po prostu homeomorficznymi endofunkorami mapującymi podfoldery przestrzeni Hilberta. 1
Nie rozumiem tego Ale wiesz co? To nie ma znaczenia Nie musisz znać żadnej z tych rzeczy, aby korzystać z Git.
W większości Git i Hg są łatwe w użyciu i mają zdecydowane zalety w stosunku do SVN. Słoń w pokoju oczywiście rozgałęzia się: gałęzie po prostu działają w Git i Hg. Natomiast w SVN są w najlepszym wypadku bolesne, aw najgorszym złamane (łączenie wielu głów).
Oczywiście nadal możesz używać SVN. Nadal możesz także korzystać z systemu Windows XP. Jednak większość użytkowników, którzy próbowali obu, zgadza się, że jedna z alternatyw jest znacznie lepsza.
1 Tak, rozumiem, że to żart. Myślę.
źródło