VSS lub SVN dla a.Net projekt? [zamknięte]

W pracy jeden z menedżerów poprosił mnie o zbadanie, jakie korzyści może przynieść zmiana obecnego serwera kontroli źródeł (Visual Source Safe) mojego projektu NA SVN.

Naprawdę nie mam nic przeciwko SVN, właściwie to mi się podoba, ale moim skromnym zdaniem zmiana NA SVN nie przyniesie żadnych znaczących korzyści projektowi i zmusi nas do korzystania z narzędzi innych firm do zarządzania kontrolą źródła z Visual Studio (rozwijamy się głównie przy użyciu Microsoft tylko narzędzia).

Tak więc, jako pierwszy krok w moich badaniach, pytam: jakie mogą być korzyści z przejścia z VSS NA SVN?

Author: womp, 2009-03-27

16 answers

SVN jest bardziej popularny niż VSS i ma wiele zalet. VSS jest stary i przestarzały.

Wielu programistów obecnie przechodzi z VSS do SVN. Jeśli będziesz szukać " SVN " i " VSS " w Google, pokaże Ci wiele artykułów związane z migracją VSS do SVN .

  • Model lock-modify-unlock VSS sprawia, że współpraca przy szybko zmieniających się Plikach to poważny ból głowy. Plus koszty związane z potrzebą administratora do odblokowania plików, które ktoś sprawdził podczas wakacji.
  • W przypadku VSS nie chodzi o to, czy utracisz dane - tylko kiedy. Twoje repozytorium źródłowe ma być skałą - jeśli ulegnie awarii stacja robocza dewelopera, Powinieneś tylko stracić jego zmiany. Nie powinieneś przegrywać losowo pliki i dane z repozytorium VSS nie był utrzymywany przez MS od ponad 6 lat. Czy można jeszcze uzyskać wsparcie dla niego?
  • w zależności od narzędzi do tworzenia kopii zapasowych możesz nie być w stanie uzyskać pełnej kopii zapasowej repozytorium VSS, jeśli masz tylko jedną osobę zalogowaną na serwerze (co oznacza, że pozostawiła otwarte narzędzia programistyczne lub uruchomiła klienta VSS).
  • VSS wymaga, aby wszyscy użytkownicy mieli prawie pełną kontrolę nad plikami na poziomie systemu plików (uprawnienia NTFS) które składają się na repozytorium.
  • nie ma dobrych, użytecznych, łatwo dostępnych opublikowanych API dla VSS, a Narzędzia innych firm są w większości słabe.
  • Scalanie jest do bani w VSS.
  • VSS: jeśli masz programistów rozmieszczonych w wielu strefach czasowych, sam akt ich zameldowania może uszkodzić bazę danych, jeśli zabiorą się zbyt blisko siebie, w złej kolejności.

Nie oznacza to, że Subversion jest bezbłędny - z pewnością są rzeczy, które może zrobić lepiej, i rzeczy, których w ogóle nie robi. Ale wszyscy ludzie, którzy pracowali z VSS i SVN najprawdopodobniej nigdy nie wrócą do VSS.


Jeśli wybierzesz SVN. Oto lista narzędzi, których możesz potrzebować:

  • AnkhSVN jest dostawcą Subversion SourceControl dla Visual Studio.
  • RapidSVN jest wieloplatformowym klientem Subversion.
  • TortoiseSVN jest łatwym w użyciu oprogramowaniem SCM / source control dla Microsoft Windows i może najlepszy samodzielny klient Subversion.
  • VisualSVN jest wtyczką Visual Studio, która bezproblemowo integruje Subversion i TortoiseSVN z Visual Studio.
  • Serwer VisualSVN to pakiet zawierający wszystko, czego potrzebujesz do instalacji, konfiguracji i zarządzania serwerem Subversion dla Twojego zespołu na platformie Windows. Zawiera Subversion, Apache i konsolę zarządzania.

Oto świetna książka w tym temacie: Kontrola wersji z Subversion by C Pilato

Kontrola wersji z Subversion http://ecx.images-amazon.com/images/I/51iwjNGkQdL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg


Kolejną dobrą alternatywą dla VSS i SVN jest SourceGear Fortress, który oprócz kontroli źródeł posiada system śledzenia problemów - wszystko w jednym. Or SourceGear Vault - tylko Kontrola źródła. Jest też SourceAnyWhere rozwiązanie. Jeśli potrzebujesz rozwiązania Microsoft, wybierz TFS zamiast VSS.

 41
Author: Tarkus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-10 15:44:52

Microsoft przyznał, że nigdy nie używał VSS w żadnym ze swoich wewnętrznych projektów (nie mogę teraz znaleźć odniesienia :/). Używałem go przez dwa lata i był głupi. Baza danych była uszkodzona co najmniej raz w tygodniu.

Jedną z moich ulubionych rzeczy do zacytowania dla użytkowników VSS jest pierwszy cytat na stronie Erica Wadwortha , podobno od kogoś z Microsoftu:

"Visual SourceSafe?  It would be safer to print out all your code,
run it through a shredder, and set it on fire."

Zdecydowanie idź z SVN. VSS jest jak koszmary tysiąca demonów.

 16
Author: womp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 18:02:08

Rozważ bardziej nowoczesne narzędzie jak Git, Mercurial lub Darcs . Jest wiele zalet, zostawię googling jako ćwiczenie dla czytelnika.

 11
Author: rfunduk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 18:13:35

Używamy SVN tam, gdzie pracuję i z odpowiednią dokumentacją, właściwym klientem i narzędziami jest to bardzo proste - jak na razie jest wysoce niezawodne w pracy. Po spędzeniu ostatnich 10 lat z VSS mogę powiedzieć, że nie brakuje mi go trochę.

Tak bardzo lubię SVN, że napisałem recenzję tego, co uważam za najcenniejszych klientów (niektórzy nie) i dodatkowe narzędzia. Jest to nowy artykuł, więc jest bardzo aktualny: http://codertools.wordpress.com/2009/03/24/svn-subversion-clients-and-other-tools/

Nie zawahałbym się polecić SVN nikomu - GIT jest następny na mojej liście do obejrzenia.. Mam nadzieję, że to pomoże.

 5
Author: Tab,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 18:14:14

Unikanie bólu głowy spowodowanego awarią bazy danych Source Safe, zabieranie ze sobą całego kodu jest dużym problemem.

Nie trzeba się martwić o to, kto ma sprawdzony plik, to inna sprawa.

 3
Author: Moose,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 17:43:54

Uważam, że łączenie plików z VSS jest bardzo uciążliwe, ale z SVN jest świetnie. Poza tym, nie mam na to żadnych dowodów, ale SVN wydaje się szybszy.

 2
Author: Matt Grande,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 17:44:22

VSS jest stary i przestarzały. Baza danych jest zbyt często uszkodzona. Nie bez powodu MS też zbudował TFS.

SVN jest bardzo popularny( co oznacza dużo wsparcia społeczności, co oznacza bezpłatne wsparcie), istnieje wiele narzędzi, które się do niego podłączają (na przykład CruiseControl do ciągłej integracji) i jest dość prosty w użyciu.

Musisz wziąć pod uwagę, że istnieje krzywa uczenia się, jeśli już używasz VSS i to jest coś, co musisz ważyć w swoich badaniach. Jeśli inni deweloperzy nie używałem SVN (lub CVS), to może być kosztowne, chociaż wszystko, czego potrzebujesz, to jedna osoba, która naprawdę poznaje system ,a następnie trenuje resztę.

Zmieniliśmy VSS na SVN 4 lata temu i od tego czasu nie oglądaliśmy się za siebie.

 2
Author: Rezlaj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 17:51:53

Tak na marginesie, korzystamy z SourceGear Vault od wielu lat całkiem szczęśliwie. Posiadanie repozytoriów i centralnej bazy danych SQL Server wraz z doskonałym dostępem przez Internet sprawiło, że było to slam dunk dla naszej organizacji.

Myślę, że jest w rozsądnej cenie i przynajmniej warto zajrzeć.

 2
Author: billb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 17:55:31

AnkhSVN 2.0 jest naprawdę bardzo dobry.

Gdybyś miał integrację z Visual Studio jako wymóg, ostrzegałbym przed SVN nawet rok temu, ale to się zmieniło w dużym stopniu. Nadal nie jest tak dobry jak, powiedzmy, system vs Team, ale jest znacznie lepszy niż stara integracja VSS oparta na MSSCCI. Nie ma powodu, aby nie używać SVN z .NET.

 2
Author: Darcy Casselman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 18:07:52

Kolejne głosowanie "zdecydowanie SVN" tutaj. Byłem częścią zespołu migracyjnego w poprzedniej pracy. Nawet nie wiesz, jak miło było pozbyć się VSS.

    Koniec z uszkodzonymi repozytoriami]} Znacznie lepsze scalanie
  • więc znacznie szybciej
  • tanie i łatwe rozgałęzianie
  • Koniec z ekskluzywnym blokowaniem
  • Sprawdź źródło do wielu lokalizacji naprawdę łatwo

Mógłbym kontynuować, ale wspomnienia o kajdankach VSS są zbyt bolesne. Po prostu powiedz nie.

 2
Author: Jon Skeet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 18:13:17

SourceGear Vault jest doskonałym zamiennikiem VSS. Zaczęło się od "funkcji VSS, ale przy użyciu prawdziwej bazy danych" i od tego się rozrosło.

 1
Author: John Saunders,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 17:53:41

Prawie na pewno SVN. SVN działa w inny sposób (Copy-Modify-Merge zamiast Lock-Modify-Unlock). To trochę krzywa uczenia się, ale tak już jest od kilku lat, więc większość programistów będzie musiała się tego nauczyć w pewnym momencie lub w innym. Blokowanie-modyfikowanie-odblokowanie jest zbyt bolesne, a istnieją poważne problemy ze współpracą, do których faktycznie się przyczynia, co z przyjemnością wyjaśnię, jeśli jesteś ciekawy.

Seconding the comments about how bad VSS też. Oto różne linki, które obejmują ten temat:

Http://www.codinghorror.com/blog/archives/000660.html

Http://www.developsense.com/testing/VSSDefects.html

Http://wadhome.org/svn_vs_vss.html

Edit: Zobacz też: Source Control-Lock vs. Merge?

 1
Author: Dan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:29:38

Mówiąc jako ktoś, kto przeszedł proces przejścia VSS - > SVN dla dużej bazy kodowej, powiedziałbym, że największą korzyścią jest możliwość spokojnego snu, wiedząc, że Twój system SCM nagle nie będzie miał czkawki, która psuje twoją bazę danych i musisz wrócić do wczorajszej kopii zapasowej. Robisz kopie zapasowe bazy danych codziennie, prawda?

W VSS korupcja zdarzała się co najmniej raz w miesiącu. Z SVN (same hardware & OS) - nie raz na ponad dwa lata.

Oh, and the możliwości rozgałęziania/scalania są słodkie!

 1
Author: Ferruccio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-27 18:16:11

Zdecydowanie, przejdź Z SVN, ze wszystkich wymienionych powodów powyżej. Możesz spróbować ankhsvn, który jest wtyczką svn dla visual studio. W ten sposób uzyskasz to, co najlepsze z obu światów: korzystanie z SVN i cała praca nadal jest wykonywana w visual studio.

 1
Author: Miguel Rentes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-10 15:53:18

Tylko dodatek do odpowiedzi Koista Navina.

Powiedział: Oto świetna książka na ten temat: Kontrola wersji z Subversion przez C Pilato

Istnieje darmowa wersja online:

Http://svnbook.red-bean.com/

 0
Author: alkaloid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-08 14:42:10

Serwer Team Foundation jest optymalnym wyborem do rozwoju w świecie. NET. Jednak nie jest to darmowe i dla obecnej wersji 2008 może być dość drogie. Jeśli masz pakiet wyższego poziomu dla Visual Studio, otrzymasz TFS workgroup edition za darmo, który umożliwia dostęp 5 użytkownikom bez dodatkowych kosztów.

Istnieją pewne poważne zastrzeżenia do edycji workgroup musisz użyć jednego z 5 slotów dla konta usługi TFS, chyba że skonfigurujesz go do działania pod kontem użytkowników, które będzie być wpisanym na listę członków TFS. Drugi to po trafieniu limitu 5 użytkowników skok do 6 użytkowników to dość oszałamiający koszt, ponieważ obecne wymagania licencyjne obejmują konieczność zakupu serwera (kilka tysięcy dolarów) i CALs dla każdego członka zespołu. To dość wygórowany koszt, aby dodać jeszcze jednego członka do zespołu.

Jednak Microsoft zdał sobie z tego sprawę i zmienia to na rok 2010. Nie będziesz już musiał kupować samego serwera i będziesz musiał tylko zakup CALs. TFS 2010 Server licensing: jest zawarty w subskrypcjach MSDN

 0
Author: Chris Marisic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-10 16:02:57