Śledzenie wersji z Subversion (SVN) dla początkujących
Czy kiedykolwiek chciałeś pracować nad projektem z możliwością śledzenia zmian i ich przywracania? How-To Geek wyjaśnia, jak korzystać z popularnego systemu śledzenia wersji Subversion (a.k.a SVN).
Zdjęcie: Clearly Ambiguous
Prelog
Ten przewodnik ma na celu umożliwienie korzystania z klienta subversion w ogóle, a jeśli masz go na swoim routerze * DD-WRT. Niniejszy przewodnik nie jest w żadnym wypadku ostatecznym przewodnikiem dla Subversion, a wiele informacji można znaleźć w Czerwonej Księdze Subversion. Ten przewodnik ma na celu jedynie skróconą odpowiedź na najbardziej podstawowe pytania.
Przegląd
Może istnieć wiele powodów, dla których chciałbyś mieć możliwość "wymeldowania się" z najnowszego kodu projektu oprogramowania korzystającego z systemu wersjonowania. Dzięki temu możesz korzystać z najnowszych wciąż nieopublikowanych zmian, pomóc w testowaniu, a nawet w rozwoju. W tym przewodniku omówimy podstawową terminologię SVN, pokażemy, jak zainstalować klienta SVN na Linuksie, Windowsie i jeśli masz jeden router obsługujący OPKG DD-WRT. Dodaliśmy również przykład projektu, który możesz zrealizować i użyć dla wspomnianego routera.
Czym jest Subversion?
Subversion nie jest bynajmniej jedynym systemem kontroli wersji, a alternatywy to Git (który został stworzony przez Linusa Torvaldsa, założyciela jądra Linux), Mercurial i PerForce, aby wymienić tylko kilka. Powiedziawszy to, jest to jeden z darmowych, jest dojrzały i szeroko stosowany na całym świecie.
Z Subversion "Czerwona księga":
Subversion to wolne / otwarte źródło system kontroli wersji (VCS). Oznacza to, że Subversion zarządza plikami i katalogami oraz zmianami w nich wprowadzonymi w miarę upływu czasu. Pozwala to odzyskać starsze wersje danych lub sprawdzić historię zmian danych. Pod tym względem wiele osób uważa system kontroli wersji za swego rodzaju "wehikuł czasu".
Uwaga: ta książka jest ostateczny zbiór wiedzy na temat subwersji i radzimy odnieść się do niego na wszystkich tematach związanych z Subversion.
Co to jest wersja?
Wersjonowanie to proces, w którym zapisywany jest stan projektu w określonym momencie. Tego rodzaju procedura jest często używana do zarządzania tworzeniem oprogramowania, dzięki czemu praca może dalej ulepszać projekt lub dodawać funkcje, a jednocześnie może śledzić to, co zmieniło się od ostatniego ogólnego "save" punktu. W celu opracowania tego rodzaju procedura może być przydatna dla jednej osoby, ale jeszcze bardziej dla grupy osób, pracujących nad tym samym projektem. Dzieje się tak, ponieważ zazwyczaj podczas pracy nad projektem jako grupa istnieje podział obowiązków, a różne osoby zmieniają różne aspekty projektu. Bez mechanizmu wersjonowania bardzo trudno byłoby wszystkim zsynchronizować najnowsze zmiany robocze ze wszystkimi.
Terminologia
Repozytorium
Repozytorium jest miejscem, w którym zapisywane są wszystkie dane ze wszystkich różnych miejsc. W świecie subversion, z punktu widzenia klienta, jest to serwer, który przechowuje bazę danych projektu. Ta baza danych zawiera wszystkie pliki, które są częścią projektu wraz ze wszystkimi ich wcześniejszymi wersjami.
Rewizja
Po utworzeniu repozytorium otrzymuje numer rewizji równy zero (0). Liczba ta jest zwiększana o jeden (1) za każdym razem, gdy wykonywane jest zatwierdzenie. Numer rewizji jest globalny dla repozytorium. Oznacza to, że nie ma indywidualnego numeru wersji dla poszczególnych plików w repozytorium, nawet jeśli nic nie zmieniło się w tym pliku dla tego konkretnego zatwierdzenia.
Kopia robocza
Kopia robocza to kopia lokalna (lub "kasy") konkretnej wersji. Zazwyczaj ta wersja, gdy jest wyewidencjonowana, jest wersją "najnowszą" (zwaną także "głową"), ale można zażądać poprzedniej. Użytkownik może zrobić z lokalną kopią wszystko, czego zapragnie, wiedząc, że w najgorszym wypadku może po prostu ponownie wylogować się z kodu. Co więcej, ta kopia jest "prywatna". Dzieje się tak, ponieważ dopóki nie zaktualizujesz lub nie zapiszesz swojej kopii, nie zobaczysz zmian innych osób ani nie zobaczysz swoich.
Aktualizowanie i rozwiązywanie konfliktów
Lokalna kopia robocza może zostać zaktualizowana. Oznacza to, że jeśli "wyewidencjonowałeś" określoną wersję, a podczas pracy, wersja w repozytorium została zaktualizowana, możesz zaktualizować swoją kopię roboczą do najnowszej. W rzeczywistości serwer uniemożliwi Ci zatwierdzenie zmian przed zaktualizowaniem do najnowszej wersji, aby dopasować je do repozytorium. Dzieje się tak, aby zmusić Cię do rozwiązywania konfliktów lokalnie, zanim pomyślisz o wprowadzeniu zmian w repozytorium.
Scalanie
Scalanie odnosi się do procesu, w którym zmieniony kod jest mieszany w jedną wersję. Może również pociągać za sobą rozwiązywanie konfliktów.
Zobowiązania
Zatwierdzanie to proces, w którym zmiany dokonane w lokalnej kopii zostaną scalone z powrotem w repozytorium. Jest to najbardziej niebezpieczna część procesu, ponieważ zmiany, które wprowadziłeś, mogą wpłynąć na inne osoby korzystające z tego samego repozytorium. Dlatego zwykle robi się to po pewnym zastanowieniu, przy konsensusie zespołu i po rozwiązaniu konfliktów łączących.
Przepływ pracy
Najbardziej podstawowym przepływem pracy z perspektywy użytkownika podczas korzystania z subversion jest:
1. Sprawdź istniejący kod (zazwyczaj "głowa").
2. Wprowadź zmiany, dodaj pliki i ogólnie rozwijaj kod.
3. Zaktualizuj do najnowszej wersji, aby upewnić się, że kopia lokalna jest zsynchronizowana z aktualizacjami w repozytorium.
4. Lokalnie scalaj i rozwiązuj konflikty, jeśli to konieczne.
5. Zatwierdź scalone zmiany w repozytorium.
6. Przejdź do kroku 2.
Do roboty
Zainstaluj klienta
Aby móc korzystać z subversion, musisz zainstalować klienta na swoim komputerze.
W systemie Linux
Musisz tylko zainstalować pakiet. W systemie Ubuntu / Mint można to zrobić za pomocą:
sudo aptitude install subversion
Na DD-WRT
Jeśli zastosowałeś się do "Jak zainstalować dodatkowe oprogramowanie na twoim domowym routerze (DD-WRT)", możesz zainstalować klienta svn, po prostu wydając:
aktualizacja opkg; opkg install subversion-client
W systemie Windows
Podczas gdy nasi geekowi użytkownicy mogą zacząć zapomnieć, że GUI istnieje nawet czasami, nie każdy ma. Jeśli chcesz użyć klienta Windows do połączenia z repozytorium SVN, zdecydowanie najbardziej popularnym jest "Żółw". Aby z niego skorzystać, wystarczy pobrać program i zainstalować w sposób regularny "następny, następny, koniec".
Utwórz "repozytorium"
Chociaż nie będziemy szczegółowo opisywać, jak skonfigurować serwer subversion w tym przewodniku, alternatywa Google nie jest złym początkiem dla początkującego użytkownika. Aby utworzyć repozytorium Google:
- Udaj się na stronę hostingową Google Code i "utwórz" nowy projekt.
- Na następnej stronie wypełnij wymagane pola i wybierz rodzaj "systemu kontroli wersji", który ma być subwersją.
Uwaga: zanim wybierzesz jedną dla projektu, możesz rzucić okiem na to, jaka jest różnica między licencjami oferowanymi przez Google. - Kliknij "Utwórz projekt".
Po utworzeniu projektu powinieneś znaleźć instrukcje, jak uzyskać do niego dostęp w zakładce "Źródło".
Zaletą kodu Google jest to, że umożliwia on anonimową wersję tylko do odczytu dla twojego projektu. Jeśli nie chcesz zajmować się problemami związanymi z tworzeniem własnego projektu, możesz anonimowo zamówić repozytorium tego pisarza.
Jedna uwaga na temat projektu hotfortech: Ten projekt ma być opakowaniem dla funkcji, które zostały dodane do DD-WRT w How-To Geek (którego osobiście używam) plus kilka osobistych poprawek. Chociaż projekt ten ma działać w połączeniu z artykułami opublikowanymi tutaj na temat howtogeek, to nadal jest to mój prywatny projekt. Oznacza to, że jest bardzo odpowiedni do mojego routera Buffalo (architektura AR71xx), moich osobistych zachcianek i jest skłonny do sporadycznych borkage.
W systemie Linux / DD-WRT
Utwórz katalog do pracy, na przykład na DD-WRT, który może być:
mkdir -p / jffs / svn; cd / jffs / svn
Pełna komenda na Linuksie składa się z samego polecenia SVN, dyrektywy "checkout", adresu repozytorium i katalogu do kasy również. Utwórz pusty katalog i wykonaj poniższe polecenie:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only
Zwróć uwagę, że w powyższym przykładzie sprawdzana jest wersja tylko do odczytu. Jeśli zdecydujesz się na stworzenie własnego repozytorium, będziesz musiał użyć linku httpS.
W systemie Windows
Ponieważ żółw jest rozszerzeniem powłoki, będziesz musiał użyć menu kontekstowego eksploratora plików Windows (prawy przycisk myszy), aby go użyć. W rzeczywistości, jeśli spróbujesz wywołać go z menu Start, otrzymasz:
- Utwórz pusty katalog.
- Kliknij prawym przyciskiem myszy, aby wyświetlić menu kontekstowe.
- Wybierz "SVN Checkout":
- Skopiuj i wklej link do projektu (jeśli go posiadasz) do pola tekstowego "URL":
- W zależności od wielkości Twojego projektu może to chwilę potrwać, ale po zakończeniu "Checkout" powinieneś zobaczyć coś takiego:
- Możesz zacząć rozwijać.
"Aktualizuj" i "Scal" swoją kopię roboczą
Jeśli pracujesz nad kodem ze współpracownikami lub sam zmienisz kod z kilku lokalizacji (np. Laptopa, komputera stacjonarnego, a nawet routera), musisz zaktualizować swoją kopię roboczą przed zatwierdzeniem najnowszych zmian.
W systemie Linux / DD-WRT
Polecenie do wykonania tego w tych systemach POSIX to po prostu:
svn up
W systemie Windows
- Kliknij prawym przyciskiem myszy w katalogu roboczym i wybierz "Aktualizacja SVN":
- Jeśli wystąpią konflikty, spróbuj postępować zgodnie z instrukcjami wyświetlanymi na ekranie i oceniaj, co z nimi zrobić.
"Zatwierdź" swoje zmiany
To wszystko, powinieneś być wolny od konfliktów i gotowy do aktualizacji repozytorium ze zmianami.
W tym miejscu warto zauważyć, że powszechną praktyką jest dodawanie do zatwierdzenia komunikatu "log", aby móc łatwo przypomnieć, dlaczego dokonano zmian. Rzeczywiście, repozytorium Google sprawia, że jest to obowiązkowy wymóg wstępny.
W systemie Linux / DD-WRT
To jest przykład commitów, które zrobiłem w projekcie hotfortech, który podniósł go do wersji 19:
svn commit -m "zaktualizowano, aby odzwierciedlał nowy link do pakietu reklam"
W systemie Windows
- Kliknij prawym przyciskiem myszy w katalogu roboczym i wybierz "SVN Commit":
- Powinieneś powitać okno, które umożliwia zapisanie komunikatu dziennika:
- Kliknij OK, a gdy pojawi się prośba o podanie hasła, podaj wygenerowane przez Google hasło.
- Jeśli zatwierdzenie zakończyło się powodzeniem, powinieneś zobaczyć coś takiego:
- To jest to, powinieneś być w stanie popełnić jak BOSS.
Uwagi końcowe
To powinno wystarczyć, aby zacząć. Zaleca się zapoznanie się z książkami referencyjnymi SVN, aby lepiej zrozumieć wszystkie zastosowania, opcje i zastrzeżenia SVN. Przypominamy również (ponownie), że subversion to NIE jedyny system kontroli wersji, a GIT (który został stworzony przez Linusa Torvaldsa, założyciela jądra Linux) wydaje się zyskiwać popularność w ostatnich latach.
Jeśli zdecydujesz się uruchomić "running-config.sh" z projektu hotfortech na swoim routerze, okaże się, że będzie on teraz instalował dla Ciebie: pakiet anty-ads, skrypt ops geek-init, jak również rzeczy takie jak pełne GNU "ls", "mniej", "BASH" i więcej.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
Więcej funkcji oczekuje i zostanie dodanych w przyszłości.
Administratorzy systemu będą kodować wyjście z kodowania.