Systemy kontroli wersji

0

Witam.
Jakie macie doswiadczenia z systemami kontroli wersji?

Obecnie pracuje z Visual Source Safe 2005 i nie jestem zbyt zadowolony. Sposob tworzenia struktury katalogow projektu i pozniejsza modyfikacja to cos niezbyt milego. Zdecydowanie lepiej pod tym wzgledem wypadal Team Coherence. Jednak ten przy integracji z visual studio dostal slimacznego tempa, a i rowniez sie wieszal od czasu do czasu.

Moze znacie jakis dobry system do zarzadzania wersjami? Chcialbym by spelnial nastepujace wymagania:

  • pelna integracja z Visual Studio
  • latwy podglad kto dany plik w danym momencie ma wycheckoutowany (jakby bylo z menu w visualu to juz zupelnie bosko)
  • sprytny merge, jesli dwie osoby wycheckoutuje to samo
  • by nie wariowal jak nagle nie ma podlaczenia do bazy danych
  • nie dzialal jak slimak
  • prosta obsluga, mi naprawde milion opcji nie jest potrzebne
  • proste oznaczenie wszystkich plikow numerem wersji aplikacji (jak i pozniejszy restor do danej wersji).

A jakie wy macie doswiadczenia z systemami kontroli wersji?

0

Pracowałem tylko na dwóch: CVS i SVN - zdecydowanie to drugie lepsze (wszystko masz w Popup`e myszki, stany plików ładnie widać - łatwo się dodaje całe katalogi do projektu, nie ma żadnych problemów, ani krytycznych błędów. Można podpiąć zewnętrzny "porównator" plików - ja używam Axira Merge (bardzo ładnie widać zmiany). SVN ma dość czytelny log, szybkość działania - zadowalająca (ale żadna rewelacja). Merge na różnych gałęziach nie wykazywał jakichś dziwnych błędów (inkremenatcja rewizji całego projektu przy każdej zmianie dowolnego pliku projektu).

U mnie współpracuje z VS Team Suite 2005 - nie widać dziwactw (chyba, że złączy dwie zmiany plików i wstawi swoje znaczki numeracji wersji w postaci ">>>>>" wtedy VS nie wie jak to kompilować i wywala Error, co jest oczywiste).

Z uwag mogę jedynie zarzucić zbyt wolne działanie "Repo browser" - czyli przeglądarki plików repozytorium.

0

Ja pracowałem na CVS, SVK oraz SVN. Wszędzie czytałem, że SVK powinien być pod każdym względem "bardziejszy" [nie wiem jak integracja klienta z VS], ale nie podoba mi się - nie jest ani tak stabilny (serwer potrafi się wieszać, gdy kilku userów robić coś na raz), ani tak bezpieczny (zdarzyło mi się, że nie potrafiłem odzyskać uszkodzonego repozytorium) jak SVN.

Właściwie SVN jest moim absolutnym faworytem w każdej kategorii, szczególnie jak chodzi o integrację klientów nie tylko z VS ale i z samym Windows.

CVS wydaje mi się być oporny, gdy przychodzi do zarządzania folderami (wszędzie o CVS to się słyszy) oraz jak chodzi o przywracanie stanu do poprzedniej wersji (jakoś tak nie leży mi to).

0

Pracowałem z CVS i SVN. Oba mają trochę inną filozofię oba też mają kilka ciekawostek. CVS to obecnie rozwiązanie przestarzałe choć na przykład bardzo dobrze (łatwo) można w nim zarządzać użytkownikami i repozytoriami. Dodatkowo bajecznie łatwo tagowało się w tym wersje.
SVN pozwala za to na kilka istotnych sztuczek takich jak lock pliku (nie można nadpisać) lub zarządzanie przez skrypty. Wielką zaletą jest struktura bazy, która jest zwykłym drzewem katalogów. Dzięki temu w klientach masz intuicyjne działania. SVN ma też wiele dobrych narzędzi od Eclipsowego pluginu subclipse, przez klienta TortiesSVN aż po klienta konsolowego ktory pozwala na pisanie skomplikowanych skryptów.

0

Z mojej strony - duży plus dla ClearCase'a - ma swoje, pewnie jak każdy podobny system, "ficzery", z którymi trzeba jakoś żyć, ale ogólnie dobrze się z pracuje. Integracja z VS, powłoką, systemem plików, graficzna reprezentacja drzew wersji, wersjonowanie także katalogów, graficzne mergowanie, merge manager i cała różna masa użytecznych tooli. Szkoda że nie ma darmowej edycji.

Do Perforce'a nie miałem cierpliwości, głębsze poznanie SVNa czeka w kolejce TODO :(. Source Safe, ten jeszcze z VS 6, pominę milczeniem.

0
Koziołek napisał(a)

SVN pozwala za to na kilka istotnych sztuczek takich jak [..] zarządzanie przez skrypty.

Nie wiem czy mówimy o tym samym, ale w SVN bajecznie łatwo wykonać skrypt powłoki systemu (ja zwykle trzymam SVN na Linux, na Windows jest pewnie analogicznie), który ma się wykonać (po stronie serwera) przy wystąpieniu określonego zdarzenia, na przykład po zatwierdzeniu zmian w repozytorium. Naprawdę przydatna sprawa.

Co do zarządzania użytkownikami, SVN wydaje mi się o wiele wygodniejszy niż CVS: można trzymać po prostu plik z wpisami user=hasło lub stosować bardziej wysublimowane metody, jak certyfikaty.

0

@Szczawik to to zoj... zresztą w ten sposób można zintegrować SVNa z dowolną inną usługą. Po commicie odpalasz skrypt lub program, który na przykład wrzuca opis zmian do Bugzilli/Traca

0
Koziołek napisał(a)

@Szczawik to to zoj... zresztą w ten sposób można zintegrować SVNa z dowolną inną usługą. Po commicie odpalasz skrypt lub program, który na przykład wrzuca opis zmian do Bugzilli/Traca

Właśnie do tego używam (między innymi) - do uzupełniania Mantis'a (bugtrack) oraz do aktualizacji z repozytorium witryny sieciowej.

0

system kontroli wersji? SVN + TortoiseSVN.. sa jakies inne..? gdzieetam, wydaje wam sie :)))))

0

SVN? To badziewie, na które wszyscy się przesiedli jako na CVS++?
Ostatnio mam tak, że mi właśnie hosting SVNa siadł i mam problem - nie mogę teraz komitować zmian, wszystko muszę sobie kopiować na bok, żeby w razie czego móc się cofnąć i w efekcie snapshoty zajmują mi już kilka giga, nie mówiąc o tym że to trwa i jeszcze nie mogę historii zapisywać. Masakra. ;-(

Obczajcie GITa. To jest zupełnie inny świat...

0

@Krolik, i właśnie dlatego SVN jest dobry. Weź uruchom sobie lokalnie serwer, przepnij projekt i commituj lokalnie. Jak hosting ożyje to przepniesz z powrotem i skopiujesz całe archiwum. Ogromną zaletą svna jest właśnie poruszaie się jak po drzewie katalogów. Z kopiowaniem, tworzeniem i usuwaniem jak z konsoli.

0

Ja używam SVN i jestem zadowolony. Używam Eclipsa i mam pełną integrację. Dodatkowo Subclipse ładnie dogaduje się z Mylynem, więc rzadko kiedy pisze jakiś komentarz do commita. Nie wiem czy inne systemy to mają, ale ja korzystam z SVN+HTTPS, więc dosyć bezpiecznie

0
Koziołek napisał(a)

@Krolik, i właśnie dlatego SVN jest dobry. Weź uruchom sobie lokalnie serwer, przepnij projekt i commituj lokalnie. Jak hosting ożyje to przepniesz z powrotem i skopiujesz całe archiwum. Ogromną zaletą svna jest właśnie poruszaie się jak po drzewie katalogów. Z kopiowaniem, tworzeniem i usuwaniem jak z konsoli.

No dobra, nie powiem, żeby to wygodne było, ale masz rację - w tym przypadku dałoby się tak zrobić, gdyby tylko na hostingu SVN można sobie było ot tak skopiować a później "wrzucić całe archiwum" i podmienić SVNa. Niestety jestem ograniczony do interfejsu, który wystawia SVN. Nawet jeśli jakimś cudem udałoby mi się odzyskać oryginalne pliki repo i zrobić sobie mirror u siebie, to i tak później nie wrócę do starego repo.
Kopia lokalna ma zapisany numer wersji na podstawie którego powstała. Jeśli ta kopia lokalna zostanie zakomitowana do innego repo (tego zmirrorowanego), numery wersji się podwyższą. Przy próbie powrotu do starego repo (tego co się zepsuło) commit się nie uda, bo kopia lokalna będzie miała wyższe numery wersji niż kopia w repo.

GIT ma to lepiej zrobione, bo nie dość że przypadek z awarią repo jest bezproblemowy, to jeszcze na dodatek jak pojadę sobie gdzieś, gdzie nie mam sieci o mogę sobie commitować lokalnie, a później jak będę miał sieć, robie wrzutę do centralnego repo i wszystko się ładnie synchronizuje. Inni oczywiście mogli w tym czasie też coś commitować do centralnego repo. To sdą zalety systemu rozproszonego (GIT) kontra scentralizowanego (SVN, CVS).

0

@Krolik, jak masz u siebie projekt to możesz pogrzebać w plikach w katalogu .svn w każdym podkatalogu. Trochę to upierdliwe, ale można odzyskać.

0
Koziołek napisał(a)

Trochę to upierdliwe, ale można odzyskać.

No, "trochę" to lekko powiedziane. Nic tylko mam czas pisać skrypty w Perlu czy czymś tam, które automatycznie przejedzie kilka tysięcy plików i poprawi co trzeba... W tym hostorii i tak pewnie nie odzyska - musiałby powtórzyć na starym repo wszystkie commity dokadnie tak jak na tym chwilowo podstawionym. IMHO gra nie warta świeczki.

Fajnie też SVN potrafi się rozjechać właśnie jak się rozsynchronizuje wersja lokalna z repo. Np. lokalnie mysli, że pliku nie ma w repo, a w repo jest. Raz mi się coś takiego zrobiło przy użyciu pluginu eclipsowego. Plugin wtedy głupieje, ale z interfejsu linii poleceń zwykle daje się wszystko uporządkować. A kumplowi z firmy robi się tak średnio raz na tydzień, ale on coś dziwnego z tym SVNem chyba wyczynia :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1