Czy SourceSafe jest naprawdę bezpieczny?

27

Spędziłem cały ranek próbując coś sprawdzić - teraz zdaję sobie sprawę, że straciłem kilka dni pracy.

To zdarzyło się wcześniej - i podobno jest częstym zjawiskiem w SourceSafe. Czy można używać SourceSafe bez problemów, a jeśli tak, to w jaki sposób?

billy.bob
źródło
40
O, drogi Boże, NIE ... nigdy więcej!
Tim Post
27
Długo i ciężko walczyłem o to, aby SourceSafe wyszedł z mojej firmy. W końcu wygrał i wszyscy są z tego szczęśliwsi.
Kevin D
13
Każda organizacja korzystająca z VSS ma nieprzyjemny „zapach
orgii
8
Fraza „Sprawdzanie wcześnie i często”. jest zapobieganie tego rodzaju sytuacjom. Nigdy nie powinieneś tracić więcej niż kilku godzin pracy. Iron Maiden powiedział jednak najlepiej o VSS: „Biegnij na wzgórza! Biegnij po swoje życie!”
Ryan Hayes,
3
Microsoft go nie używa. Dlaczego mielibyśmy?
greyfade,

Odpowiedzi:

45

Mój widok jest prosty, migruj do czegoś innego jak najszybciej. To nie potrwa długo (1-2 tygodnie WAG) i bez względu na to, jak długo trwa migracja, łatwo to uzasadnić kosztami zarządzania. Trochę czasu na migrację to solidna kontrola źródła i bardzo mała szansa na utratę kodu źródłowego. Wykonaj szybkie wyszukiwanie w Google „źródłowych bezpiecznych opowieści grozy” lub podobnych, jeśli twój szef jest sceptyczny.

DevSolo
źródło
To prawda, ale czasem nie jest łatwo uzasadnić osobę nietechniczną, która spędza 1-2 tygodnie na migracji kontroli źródła.
t3mujin,
2
@ t3mujin, zobacz dyskusję na temat „długu technicznego” programmers.stackexchange.com/questions/18059/…
Nemi
SourceSafe jest aktywną i stałą odpowiedzialnością za twoją krótko- i długoterminową produktywność. Można go łatwo zastąpić dowolną liczbą nowoczesnych, bezpiecznych i rozproszonych systemów kontroli wersji. Przeprowadź badania z Google na temat horrorów SourceSafe, a także profesjonalnych wskazówek. ZRÓB SWOJĄ SPRAWĘ. Rób co trzeba.
Adam Crossland,
3
@ t3mujin: migruj go projekt po projekcie. Kiedy pracuję, korzystaliśmy z SourceSafe, teraz używamy TFS. Migracja wszystkiego (setki projektów) byłaby uciążliwa, więc zamiast tego, jeśli mamy pracę nad starym projektem nadal w SourceSafe, najpierw poświęcamy niewielką ilość czasu na migrację, a dopiero potem rozpoczynamy pracę.
Carson63000,
@ Carson63000 Korzystamy z TFS do większości bieżących projektów, ale istnieje duża baza źródeł z kilkoma, ale sporadycznymi aktualizacjami VSS, których nikt nie jest skłonny zapłacić za migrację do TFS. Nie jestem w zespole, który używa go częściej, więc od czasu do czasu jestem w porządku z kilkoma liniami kodu
t3mujin
33

Najgorszy. SCM. Zawsze.

Wszystko, co jest złe w SCM, jest zawarte w VSS. Nawet StarTeam jest lepszy niż Source Safe. Source Safe to Internet Explorer 1 w świecie kontroli wersji: całkowicie zastąpiony przez każdą inną implementację.

Jak tego użyłem?

Mój typowy proces roboczy polegał na wykonywaniu zadań

  1. Sprawdź projekt
  2. Zablokuj wszystkie pliki (aby uniknąć scalenia z kimkolwiek, kto otworzył bezbożne bramy piekła)
  3. Wykonałem moją pracę
  4. Każdego dnia sprawdzałem moje zmiany
  5. Sprawdziłem to wszystko ponownie i naprawiłem wszystkie problemy z integracją
  6. Sprawdziłem to z powrotem

W porównaniu z Subversion, powyższe jest śmieszne (poza sprawdzeniem, czy nie złamałeś kompilacji).

Ograniczenia praktyk programistycznych mojego zespołu

Są to zasady, zgodnie z którymi zespół musiał pracować, aby działał dla nas. Twój przebieg może się różnić.

  1. Tylko jedna osoba może edytować plik (Niebo pomoże ci, jeśli pojedzie na wakacje)
  2. Nie rozgałęziaj, zarządzanie jest zbyt trudne
  3. Nigdy nie próbuj wracać do poprzedniej wersji

Co można zrobić?

Polarion ma dobry zestaw narzędzi do migracji z programów takich jak Source Safe na Subversion (SVN), który jest obecnie de facto standardem w większości przedsiębiorstw do kontroli wersji open source. Subversion cierpi z powodu tego, że serwer musi być dostępny, aby zezwalać na meldowanie się (w przeciwieństwie do GIT lub Mercurial, które są zaprojektowane dla rozproszonych zespołów offline).

Gary Rowe
źródło
@ David nie zaczynaj ode mnie, gdy próbuję uzyskać historię zmian plików lub rozgałęzienie (płaczę, gdy piszę - tyle zmarnowanych godzin życia ...)
Gary Rowe
2
tak, rozgałęzianie i scalanie nie jest naprawdę zabawne w dobrym SCM. Nie sądzę, że kongres pozwoliłby ci zmusić ludzi do robienia tego w bezpieczny sposób.
BlackICE,
2
Nigdy nie wracasz do poprzedniej wersji? Dlaczego nie? A jeśli tak, to jaki jest sens używania narzędzia SCM?
JoelFan,
Kiedy byłem w sklepie, który korzystał z VSS, nigdy nie mieliśmy żadnych problemów z powrotem do starej wersji. To wydaje się nieco ekstremalne. Jestem z tobą na rozgałęzieniu.
JohnFx,
@JohnFx @SpashHit Nasz zespół miał bardzo niską tolerancję na ból, więc może jestem trochę przesadzony. Kiedy pojawił się Subversion, było to tak, jakby zniesiono potężny ciężar.
Gary Rowe,
15

Zmień kontrolę źródła na SVN / Mercurial / Git i nigdy nie oglądaj się za siebie!

Amir Rezaei
źródło
3
To „Mercurial”, a nie „Mercury” (po prostu zbieranie tu trochę gnidów, bez obrazy)
Jürgen A. Erhard
@jae Naprawiono to dla ciebie :-)
Gary Rowe,
11

Wyłączyliśmy go z eksploatacji około rok temu.

Zdarzyło się kilka razy, że tego, co zameldowałem się poprzedniego wieczoru, po prostu nie było następnego dnia rano. Nie wydawało mi się to zabawne, ponieważ wyglądało podejrzanie, jakbym właśnie skończył pracę. Ponieważ byłem nowy w firmie, mogło to być dla mnie niebezpieczne.

Przeszliśmy do TFS i od tego czasu działa płynnie.

wersje user8685
źródło
1
+1 za usunięcie operacji. Postąpiłeś właściwie.
Gary Rowe,
1
TFS to piękna, piękna rzecz. To znaczy, jeśli masz na to ciasto.
Adam Crossland,
2
@Adam Crossland: Piękny jak duży diament i za taką samą cenę.
Orbling
1
@Orbling: dobrze powiedziane.
Adam Crossland,
1
Dla tych, którzy nie rozpoznają skrótu, TFS to serwer Team Foundation firmy Microsoft .
Keith Thompson
9

Mój widok?

Są lepsze, łatwiejsze w użyciu, bezpieczniejsze w użyciu i całkowicie bezpłatne. Po co w ogóle zawracać sobie tym głowę?

Jest to jeden z obszarów rozwoju, w którym mamy duży wybór; większość lub wszystkie lepsze niż VSS.

Steven Evers
źródło
„najbardziej” jest trochę niepokojące… lub inaczej: co jest gorsze niż VSS?
Jürgen A. Erhard
@jae: Must to tylko kwalifikator wskazujący, że nie użyłem ich wszystkich i dlatego nie mogę zweryfikować ich jakości w odniesieniu do VSS; stąd „lub wszystko”
Steven Evers,
9

Używanie SourceSafe w operacji komercyjnej jest jak ogrzewanie budynku przez spalanie banknotów dolarowych.

W 2000 r. Moja ośmio-programistyczna firma prawdopodobnie straciła 5–10% swojej produktywności z powodu średnio dwa razy dziennie uszkodzeń bazy danych VSS. Było tak niskie, ponieważ chodziliśmy na cogodzinne kopie zapasowe.

Od czasu przejścia z VSS do Perforce, svn i git, nigdy nie miałem uszkodzonej bazy danych SCM.

Bob Murphy
źródło
7

Mogę zagłosować w tej sprawie do piekła, ale ...

alternatywny tekst

VSS skutecznie nakłada na ciebie narkotyki, do tego stopnia, że ​​nie możesz pogodzić się z rzeczywistością potrzebną do zrozumienia, że ​​twoje zepsute repo nie było twoją winą.

Proszę, nigdy tego nie używaj.

Tim Post
źródło
Głosowanie jest mało prawdopodobne. Moją jedyną krytyką jest to, że cyjanek jest oczywiście lekiem z wyboru dla zwykłego użytkownika VSS.
Orbling
7

używałem go przez lata - było to domyślne rozwiązanie, ponieważ już tam było. Gdyby mnie ugryzł kilka razy, ale bezwładność jest trudna do pokonania

potem musiałem używać go zdalnie przez VPN, a nawet drobne meldunki przypominały wpychanie cegły przez otwór . Szybciej było ręcznie znaleźć zmienione pliki, spakować je, wysłać pocztą e-mail, zdalnie do źródłowej maszyny skarbca, rozpakować je i sprawdzić kod z maszyny skarbca źródłowego.

Przełączono na Mercurial. Mogę sklonować całą bazę kodu źródłowego w sieci VPN w niecałą minutę. I nie boję się już rozgałęziania.

Nigdy nie wracam

Steven A. Lowe
źródło
Źródło Offsite było do tego. Też dobrze to pamiętam. Właściwie kupiłem własną kopię źródła poza biurem, więc nie musiałem robić VSS przez VPN
BlackICE,
+1 za „Nie boję się już rozgałęziania” znak dojrzałego SCM
Gary Rowe
5

To obrzydliwość. Ale wciąż lepiej niż nic.

Czarny lód
źródło
12
Ze wszystkimi alternatywami trudno jest uzasadnić użycie, ponieważ gdy jedzie na południe, masz to: Nic.
DevSolo,
13
Jak może być lepszy niż nic, jeśli powoduje utratę pracy?
billy.bob
4
Możesz też stracić pracę bez niczego, a bezpieczny system źródeł może cię czasem uratować .
BlackICE,
4
@David - może sensowne kopie zapasowe przed zrobieniem czegoś potencjalnie „niegrzecznego”. Jedyną rzeczą, która rywalizuje z VSS w porażce, jest MS BOB. VSS jest tak okropny, że należy stworzyć organizację charytatywną w celu wyleczenia ludzi z korzystania z niej.
Tim Post
9
Nie, to gorsze niż nic. Ponieważ jeśli nie masz również kopii zapasowych, masz fałszywe poczucie bezpieczeństwa i możesz stracić WSZYSTKO
CaffGeek,
5

Używałem go przez długi czas (prawie 10 lat) bez żadnych osobistych problemów (w tym w zespołach, w których pracowałem, chociaż nasz kod był dość dobrze podzielony, aby uniknąć konfliktów itp.).

Ale jest zbyt wiele historii utraty danych, aby móc z nich korzystać, gdy istnieją przyzwoite, niezawodne alternatywy open source.

Edycja: z komentarzy wydaje się, że w wiadomościach nie ma nic złożonego (rozgałęzianie, scalanie, konflikty) i prawdopodobnie nic ci nie jest. Coś więcej i wybierasz się na ryzykowne terytorium.

Jon Hopkins
źródło
Pracowałeś w zespole, czy nad solowymi projektami w ramach całej bazy kodu?
Gary Rowe,
Jednak w zespole baza kodu była stosunkowo dobrze podzielona pod względem tego, kto nad tym pracował, więc rzadko pojawiały się konflikty.
Jon Hopkins,
@Jon To jest długa droga do wyjaśnienia bezproblemowej obsługi.
Gary Rowe,
1
FWIW moje doświadczenie jest podobne do doświadczenia Jona. 7 lat, 8-osobowy zespół, bez problemów z korzystaniem z VSS. Najwyraźniej jesteśmy w (szczęśliwej) mniejszości. Nigdy więcej nie użyję go w oparciu o wszystkie historie (używając SVN teraz).
Steve Fallows,
1
Gdy rozgałęzianie, scalanie i rozwiązywanie konfliktów są uważane za złożone operacje, prawdopodobnie używasz niewłaściwego systemu kontroli wersji ...
James
5

Nawet stwardnienie rozsiane wycofuje się na korzyść TFS.

W przypadku solo lub naprawdę małego sklepu pracującego w Visual Studio 6 lub czegoś starszego jest to znośne i lepsze niż nic. Myślę, że jest wiele przesady w tym, jak źle było, ale potem wystarczy jeden przypadek utraty cennej pracy, aby zakwasić cię produktem (nie bez powodu). VSS miał swoje miejsce i zasługuję na to, aby zachęcić wielu programistów, którzy nie używali żadnego narzędzia SCM, do nawyku, ale podobnie jak wiele technologii, jest on już prawie przestarzały.

JohnFx
źródło
Skłonienie ludzi do korzystania z SCM jest dobre, bez argumentów. Ale ... VSS? Złe doświadczenia nie mogą po prostu nadać produktowi złej nazwy, mogą nadać całej kategorii złe imię. Lub: ilu programistów zaczyna SCM od VSS, a potem pomyślało „Wow, te SCM są tak złe, jak się spodziewałem”, kiedy VSS spieprzył? Nie wspominając o tym, że SCM jest niezwykle krytycznym elementem infrastruktury, co oznacza: błędy są niedozwolone (tak, wiem ...)
Jürgen A. Erhard
@jae, to nie było moje doświadczenie. VSS był moją pierwszą ekspozycją na SCM i nigdy nie oglądałem się za siebie. Podczas użytkowania nie doświadczyłem żadnej utraty danych, uszkodzenia ani żadnych problemów przez LATA. W końcu przeszedłem, ale myślę, że zajęłoby mi więcej czasu, aby zintegrować narzędzie, gdyby nie było wcześniej zainstalowane z Visual Studio.
JohnFx,
3

Po 3 latach używania go, narzekania na mojego kierownika z powodu wszystkich bardziej zaawansowanych / racjonalnych alternatyw, nigdy tak naprawdę nie miałem problemu z VSS, ale nigdy nie miałem opcji.

Moim zdaniem jest to zarówno do bani, jak i do ciosów.

Najbardziej irytujące jest to, że nie jest to okropne przechowywanie wersji i myląca możliwość rozgałęziania, ale pole listy w menu plików nie pozwala nacisnąć klawisza strzałki w prawo, aby rozwinąć.

Naprawdę bolesne.

Peter Turner
źródło
3

Mój pogląd na VSS? Odrzuciłem kilka ofert pracy (bardzo dobrze płatnych), ponieważ poprosili o „biegłość w VSS”. I jestem pewien, że jest tu kilka innych osób, które zrobiły to samo.

Jas
źródło
1
+1, oddanie „VSS biegłości” na ogłoszenie o pracę jest to pewny znak, że nie tylko wykorzystania firma VSS, ale że mają konfigurację gdzie VSS jest już tak uszkodzony i problematyczne, że wymaga autentycznego doświadczenia VSS, aby pracować w wszystko .
Carson63000,
1

Nie tylko cierpisz na problem potencjalnego uszkodzenia źródła (który powinien być wystarczającym argumentem, aby kierownictwo go zastąpiło), ale także musisz żyć z niewygodną kopią zapasową i niezdolnością do efektywnej pracy jako zespół nad różnymi strumieniami pracy.

Znajdź inny SCM (dowolny inny) i sprawdź, jak łatwe może być rozgałęzianie i scalanie. Pomyśl o tych czasach, kiedy musiałeś skopiować pliki z rozwiązania VSS i trzymać je gdzie indziej, gdy wróciłeś, aby naprawić błąd w kodzie „produkcyjnym”.

Aby kopać, po prostu zainstaluj GIT - skieruj go na pliki VSS i przekonaj się, jak łatwo GASP dwóm programistom może pracować w różnych częściach tego samego pliku W TYM SAMYM CZASIE, a następnie niech oprogramowanie inteligentnie scali twoje zmiany ... SCM narzędzia powinny być czymś więcej niż tylko źródłową kopią zapasową.

Paddy
źródło
0

Moje poglądy na VSS? Używałem go przez długi czas regularnie (nadal sporadycznie używamy do starszych komponentów), ale dla naszego zespołu jest to zbyt XX wiek:

  • Bardzo niewiarygodne
  • Nieużywalne oddziały
  • Bardzo słaba obsługa wersji, masz etykiety, ale (podobnie jak oddziały) tak naprawdę nie nadają się do użytku

Jestem z wszystkimi powyższymi: wybierz jedną z lepszych alternatywnych rozwiązań typu open source (nawet stary CVS) lub, jeśli Twoja firma ma jakąś subskrypcję MSDN, TFS .

t3mujin
źródło
0
  • jego domyślne blokowanie spowalniało programistów i nikt nie chciał zadzierać z jego konfiguracją
  • nie integruje się zbyt dobrze z innymi usługami, na przykład aplikacją internetową do zarządzania projektami
  • nie działało to dobrze z naszym planowanym serwerem CI

Nowy materiał Team Foundation 2010 miał bardzo pomóc i spróbować uciec od złych części VSS. Ale u podstaw wciąż opiera się na VSS , dlatego przenieśliśmy się do SVN.

edytuj - Rozumiem, że TFS jest zupełnie nowy, ale podczas testowania wielu programistów, o które prosiłem, miało do niego bardzo podobne odczucia. Powodem, dla którego powiedziałem „u podstaw” było to, że pamiętam pliki TFS wykonane w moim rozwiązaniu, które wyglądały tak samo jak te wykonane przez VSS. Jest to z punktu widzenia dewelopera, być może nawet nie wiedząc o technologii VSS, TFS lub innego SCM. Przepraszam za jakiekolwiek zamieszanie.

jmlumpkin
źródło
Co!?!? TFS nigdzie nie polega na VSS
BlackICE,
TFS został przepisany od podstaw ... nie polega w żaden sposób na VSS.
LeWoody
2
Visual Studio używa tego samego interfejsu API wtyczki SCC dla TFS i VSS. Ten interfejs API obsługuje VSS i ma wyczucie VSS do niego, więc po zmianie z VSS do dowolnego innego serwera kontroli źródła, będzie czuć się tak, jakby duch VSS jest nadal.
MatthewMartin,
1
@LWoodyiii: Jak w takim razie dwukrotnie kodowali tak parującą kupę bzdur? Musieli przynajmniej czytać komentarze w kodzie źródłowym VSS.
Robert S Ciaccio,
1
@CraigTP: większość programistów absolutnie nie potrzebuje tego w TFS. Tylko hałas sprawia, że ​​ich praca jest trudniejsza. Jeśli PM i potencjalni klienci chcą całej tej funkcjonalności, powinni oddzielić się od oprogramowania, którego programista musi używać, aby być produktywnym.
Robert S Ciaccio,
0

Wcześniej byłem obarczony SCCS pod XENIX. VSS, w Visual Studio 6, mimo wszystkich swoich awarii i problemów miał wyraźne zalety. Nadal używam go do małych projektów i nie używam SCCS w żadnej wersji.

Dave
źródło
0

Nie mogę zrozumieć, dlaczego wszyscy chcą badmouth VSS. VSS nie jest dystrybuowany, a kontrola wersji rozproszonej jest

  1. lepszy
  2. pozwala w praktyce na niepodzielną kontrolę wersji

Przeczytaj to .

Dan Rosenstark
źródło