System kontroli wersji

Do tej pory nie korzystałem, jak na razie pracuję sam, nie piszę kodów na kilkanaście k kodu. Czy w moim przypadku opłaca się coś potestować? Możecie jakiś polecić? Pomyślałem o tym, ponieważ czasem jest to opisane w ogłoszeniach o pracę i z tego co wiem(a wiem mało o svn'ach), to pomagają ogarnąć naszą twórczość, bo jest w jednym miejscu:)

2 lata, 3 miesiące temu | edytowane przez: lqc 3965112

  • Warto, a to z kilku powodów.

    • Po pierwsze, w systemie kontroli wersji masz historię zmian. W efekcie możesz np. śmiało próbować nowych rozwiązań - jeżeli zapędzisz się w ślepą uliczkę, to wrócisz do ostatniego dobrego miejsca dwoma kliknięciami.
    • Po drugie, uczysz się pracować z takim narzędziem, nabierasz dobrych nawyków. Sam zauważyłeś, że pracodawcy o to pytają. Profit!
    • Po trzecie, jeżeli Twoje amatorskie programowanie zaowocuje z czasem aplikacją, z której ludzie będą chcieli korzystać, to pojawi Ci się konieczność tworzenia branchów albo tagów na oddzielne wersje, integrowania poprawek pomiędzy wersjami, itd.
    • Po czwarte, jeżeli stworzysz coś fajnego i w pewnym momencie powiększy Ci się zespół, to będziesz już w domu.
    • Po piąte, jeżeli używasz serwera poza Twoim komputerem (np. gdzieś w sieci), to masz automatycznie backup.
    • Po szóste, system kontroli wersji bardzo łatwo można zintegrować z systemem nieustającej integracji (continuous integration). Daje to Ci tyle, że po każdym commicie wersji kodu automatycznie może być uruchamiany proces buildu, wykonywane testów jednostkowych, deployment stron na serwer WWW czy innych komponentów we właściwe dla nich miejsca. W efekcie masz pewność, że Twój kod a/ kompiluje się, b/ przechodzi unit test c/ zawsze najnowsza wersja jest dostępna do wglądu lub testów w ustalonym miejscu.

    Ja osobiście korzystam z SourceGear Vault, który dla jednego użytkownika jest darmowy. W firmach w których pracowałem "przeleciałem" się po TFS, SVN, CVS i Perforce. W sumie zastanawiam się nad przejściem na gita albo Mercuriala - SGV ma jednak zaletę świetnej integracji z Visual Studio. Rozleniwił się człowiek...

    Edit - dodałem "po szóste"...

  • Kontrola wersji przyda Ci się jeżeli zauważasz poniższe objawy jej braku:

    • kopiujesz "w bezpieczne miejsce" poprzednią wersję kodu
    • czasem chciałbyś się cofnąć czasie i poprawić jakiś błąd popełniony wcześniej
    • zrobiłeś zmianę w stanie, który nie pozwala Ci na łatwe przypomnienie sobie jaka to była zmiana a kod przestał działać poprawnie
    • jesteś programistą

    Kontrola wersji jest ekstremalnie prosta kiedy trochę z nią popracujesz. Jeżeli będziesz sam korzystał z repozytorium to może nie do końca doświadczysz jej pożytków (współdzielenie kodu z współpracownikami), ale i tak da Ci dużo na start.

    SVN można ścągnąć tutaj (czasem wymagana jest rejestracja), oprócz tego zainstaluj sobie Winmerge do porównywania plików i TortoiseSVN - jest to program, który dodaje menu kontekstowe w Explorerze przez co ułatwia korzystanie z SVN.

    Oprócz własnych projektów możesz chcieć też pobrać jakieś gotowe projekty Open Source z SVN.

  • Za każdym razem porównywany jest content wysyłanych plików. Ten z którego korzystałem, potrafił zestawić dwa pliki i podświetlał nowe linijki. Jest to idealne narzędzie do pracy w grupie. Nawet jeżeli decydujesz się na nadpisanie pliku nowszą wersją to stara wersja jest dostepna bo tworzone są tzw. instancje. Czyli ewentualne pomyłki nie kosztują Cię potrzebą pisania kodu od nowa.

    ps jako klienta używałem tortoise Svn a działałem na RedMine.

  • Zawsze lepiej jest wiedzieć więcej, w CV dobrze wygląda jak zna się jakiś system kontroli wersji. Osobiście używam git-a i mogę go z czystym sumieniem polecić, jako prostego w obsłudze i szybkiego w działaniu. Nie za bardzo mam porównanie z innymi bo oprócz git-a innych systemów kontroli wersji nie używałem zbyt intensywnie.

  • Git zdecydowanie.

  • ja korzystałem z kilku: git, svn i bazaar, z czego ten drugi ma chyba najmniej opcji, najlepiej mi się chyba z bazaarem pracowało :)

  • Myślę że kontrola wersji nawet małych projektów jest niezbędna.

    Systemy których używam w tym celu to: svn w pracy i prywanie git ( projekty mniejsze i większe hostuje na github.com ).

Zaloguj się, aby dodać swoją odpowiedź