1. Wersje pod kontrolą - wstęp do wersjonowania plików
2. Subversion - podstawowe pojęcia
3. Subversion - instalacja i tworzenie repozytorium
4. Subversion - podstawy pracy z wersjonowanymi plikami
5. Subversion - zaawansowane komendy
6. TortoiseSVN - graficzny klient SVN
7. RabbitVCS + Meld - integracja Subversion z Nautilusem
8. VisualSVN Server - prosta instalacja serwera Subversion
9. SVN4MSOffice - potęga Subversion w MS Word
Kontrola wersji
Brzmi groźnie. Jestem jednak przekonany, że każdy użytkownik komputera stosował już jakiś (choćby najprostszy) sposób na kontrolowanie wersji. No dobra, ale po co coś takiego w ogóle stosować?
- gdy chcemy wiedzieć jakie zmiany i kiedy wprowadzaliśmy do danego pliku
- gdy chcemy mieć łatwy dostęp do poprzednich wersji plików (np gdy coś "popsujemy" w aktualnie edytowanej wersji)
- gdy chcemy porównywać różne wersje tego samego pliku
Jest to szczególnie ważne w przypadku wszelkich prac programistycznych, pisania jakichś ważnych dokumentów, nad którymi pracujemy przez dłuższy czas.
Najprostsze rozwiązania
- zapisywanie kolejnych wersji dokumentu jako osobne pliki z numerem zmiany w nazwie. Na przykład dodając do nazwy pliku "_XX" (gdzie XX to numer). Ewentualnie dopisując aktualną datę
- jeśli edytujemy wiele plików na raz możemy tworzyć kolejne wersje kopiując pliki do osobnych folderów z datą w nazwie
- można sobie ułatwić życie wspomagając się prostymi skryptami jak w przykładzie na LifeHacker
Jest to rozwiązanie niezmiernie proste i stosowane przez wielu użytkowników. Sprawdzi się stosunkowo dobrze przy edycji pojedynczego dokumentu, lub małej ich liczby. W pozostałych przypadkach odczujemy jego wady:
- mimo prostoty, jest to rozwiązanie dość żmudne. Musimy ręcznie kopiować pliki i zmieniać ich nazwy (o ile nie użyjemy skryptów automatyzujących tą pracę)
- na dłuższą metę bardzo łatwo się pogubić
- pliki zajmują coraz więcej miejsca. Trochę pomoże kompresowanie plików, jednak jest to dodatkowa czynność jaką należy wykonać i utrudnia to dostęp do wersjonowanych plików
- by zobaczyć jakie zmiany wprowadziliśmy musimy zastosować dodatkowe narzędzia (np diff)
- utrudnione przemieszczanie się pomiędzy poszczególnymi wersjami (np cofnięcie się kilka wersji w tył, wprowadzenie kilku zmian i połączenie tych zmian z wersją najnowszą)
- bardzo trudno dodawać dodatkowe komentarze opisujące co zmieniliśmy w dokumencie
- bardzo trudne jest sprawdzanie kiedy dodaliśmy lub skasowaliśmy, któryś z wersjonowanych plików
Dodatkowo pojawiają się problemy z pracą grupową:
- gdy chcemy mieć pewność, że wszyscy edytujący pliki mają dostęp do ich najnowszych wersji
- gdy chcemy wiedzieć kto wprowadził dane zmiany
- gdy chcemy ograniczyć do minimum ilość przesyłanych danych pomiędzy edytującymi
By rozwiązać opisane problemy stworzono wiele systemów kontroli wersji. W kolejnym wpisie opisze jeden z najpopularniejszych - Subversion.