Systemy kontroli wersji

2008-03-04 23:04

Kiedy nad jednym projektem pracuje więcej niż jedna osoba, nieuchronnie powstaną problemu z synchronizacją kodu napisanego przez różnych programistów. Jeśli wersje utrzymywane i modyfikowane przez poszczególne osoby będą przez jakiś (nawet całkiem krótki) czas odizolowane od siebie, wtedy nieuchronnie się “rozjadą”. Integracja takich kawałków będzie potem bardzo trudna.
Takich problemów nie da się rzecz jasna całkiem uniknąć, ale wymyślono kilka sposobów, które pomagają je rozwiązywać. Wśród nich pewnie najważniejsze są systemy kontroli wersji.

Logo TortoiseCVSIdea działania takiego systemu jest w miarę prosta. Istnieje mianowicie centralne i ogólnodostępne (czytaj: umieszczone na zdalnym serwerze) miejsce, gdzie składowane są różne wersje kodu projektu – czyli repozytorium. Pracujące nad nim osoby pobierają z niego aktualną wersję, dokonują swoich modyfikacji, a następnie załadowują ją z powrotem (tzw. commit), tworząc w ten sposób nową wersję w repozytorium. Po drodze mogą oczywiście wyniknąć konflikty, jeśli ten sam kod jest zmieniany równocześnie przez dwóch użytkowników; takie niezgodności są wykrywane automatycznie, ale ich rozwiązywanie należy już do programistów. Ponieważ jednak w repozytorium trzymana jest historia wszelkich zmian, zawsze można powrócić do poprzedniej wersji, jeśli coś pójdzie nie tak.
Logo SVNNajpopularniejszym systemem kontroli wersji jest oczywiście CVS (Concurrent Version System), o którym słyszał pewnie każdy. Pośród licznych jego wad największą jest chyba ta, iż jest… wciąż bardzo popularny :) Jest tak mimo tego, że od prawie dekady istnieje znacznie lepszy system o nazwie Subversion (w skrócie SVN), który ma liczne przewagi nad swoim poprzednikiem. Jak choćby to, że potrafi też wersjonować zmiany w strukturze katalogów, lepiej obsługiwać pliki binarne i nie grozić zepsuciem repozytorium, jeśli podczas commitu zdarzy się coś złego z serwerem lub połączeniem.

Jak to często bywa, przyczyną takiego stanu rzeczy jest naturalnie zasiedzenie tudzież przyzwyczajenie. Skoro bowiem tacy giganci jak SourceForge nadal opierają się na CVS-ie, prawdopodobnie jeszcze przez długi czas trzeba będzie radzić sobie z jego niedogodnościami. Jakby sama praca grupowa nie dostarczała wystarczającej liczby kłopotów… ;P

Be Sociable, Share!
Be Sociable, Share!
Tags:
Author: Xion, posted under Programming »


4 comments for post “Systemy kontroli wersji”.
  1. Queight:
    March 7th, 2008 o 0:12

    Co znaczy, że SF opiera się na CVS? Ja swoje repo mam w SF na SVN, jak wielu innych. SF daje po prostu wybór, ale pewnie nie wiem o co chodzi. :)

  2. Reg:
    March 7th, 2008 o 11:37

    Profesjonaliści używają komercyjnego Perforce.

  3. Xion:
    March 7th, 2008 o 14:21

    Q8: Zdecydowana większość projektów z SF jest dostępna tylko przez CVS. Ale to głownie kwestia ich wieku, a nie samego SF-a.

  4. Paweł Dziepak:
    March 8th, 2008 o 11:35

    @Queight: problem właśnie w tym, że SF nie daje wyboru, CVS albo SVN, z tym że SVN to taki podrasowany CVS. Jak ktoś chce korzystać z chociażby git (np. ja ;) to musi szukać jakiegoś innego miejsca gdzie będzie miał repo.
    @Reg: Sorry, bardzo ale sugerujesz, że wymogiem bycia “profesjonalnym” jest używanie Perforce? Każdy używa tego w czym jest mu najwygodniej pracować. Czy jest to rozproszony git, czy scentralizowany SVN, czy może komercyjny Perforce to już sprawa IMO drugorzędna. A sugerowanie, że większość projektów open-source nie jest profesjonalna to lekka przesada.

Comments are disabled.
 


© 2020 Karol Kuczmarski "Xion". Layout by Urszulka. Powered by WordPress with QuickLaTeX.com.