Skip to content

Śledzenie wersji za pomocą Subversion (SVN) dla początkujących

1 de lipiec de 2021
tortoise 48185613 8cce892353 b thumb

Czy kiedykolwiek chciałeś pracować nad projektem z możliwością śledzenia zmian, a także ich cofania? How-To GeekexplainsJak korzystać z popularnego systemu śledzenia wersji Subversion (aka SVN).

Obraz autorstwa Wyraźnie niejednoznaczne

Prelog

Ten przewodnik ma na celu umożliwienie ogólnego korzystania z klienta subversion, a jeśli go masz, na routerze * DD-WRT. Ten przewodnik w żadnym wypadku nie jest ostatecznym przewodnikiem po Subversion, a wiele informacji można znaleźć na stronie Czerwona Księga Subversion. Celem tego przewodnika jest udzielenie skróconej odpowiedzi na najbardziej podstawowe pytania.

Przegląd

Może istnieć wiele powodów, dla których chciałbyś mieć możliwość „zakupu” najnowszego kodu projektu oprogramowania, który korzysta z systemu wersjonowania. Dzięki temu możesz korzystać z najnowszych, wciąż niepublikowanych zmian, pomagać w testowaniu, a nawet w rozwoju. W tym przewodniku omówimy podstawową terminologię SVN, pokażemy, jak zainstalować klienta SVN w systemie Linux, Windows i jeśli masz router DD-WRT z obsługą OPKG. Zawarliśmy również przykład projektu, który możesz pobrać i użyć dla wspomnianego routera.

Co to jest Subversion?

Subversion w żadnym wypadku nie jest jedynym istniejącym systemem kontroli wersji, a alternatywy obejmują: Gita (który został stworzony przez Linus Torvalds założyciel jądra Linuksa), Mercurial i PerForce, żeby wymienić tylko kilka. Mając to na uwadze, jest to jeden z darmowych, dojrzały i szeroko stosowany na całym świecie.

Z Subversion „Czerwona Księga”:

Subversion jest darmowym/otwartym źródłem system kontroli wersji (VCS). Oznacza to, że Subversion zarządza plikami i katalogami oraz wprowadzanymi w nich zmianami na przestrzeni czasu. Pozwala to na odzyskanie starszych wersji danych lub zbadanie historii zmian danych. W związku z tym wiele osób myśli o systemie kontroli wersji jako o „wehikule czasu”.

Uwaga: Ta książka jest ostateczny zbiór wiedzy na temat Subversion i radzimy odnosić się do niego we wszystkich tematach związanych z Subversion.

Co to jest wersja?

Wersjonowanie to proces, w którym zapisywany jest stan projektu w danym momencie. Ten rodzaj procedury jest często używany do zarządzania rozwojem oprogramowania, dzięki czemu praca może nadal ulepszać projekt lub dodawać funkcje, jednocześnie umożliwiając śledzenie zmian od ostatniego ogólnego punktu „zapisania”. Aby rozwinąć, 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ż zwykle podczas pracy nad projektem w grupie następuje podział obowiązków i różni ludzie zmieniają różne aspekty projektu. Bez mechanizmu wersjonowania bardzo trudno byłoby zsynchronizować wszystkich z najnowszymi działającymi zmianami od wszystkich innych.

Terminologia

Repozytorium

magazyn to lokalizacja, w której zapisywane są wszystkie dane ze wszystkich różnych miejsc. W świecie subversion, z punktu widzenia klienta, to serwer przechowujący bazę danych projektu. Ta baza danych zawiera wszystkie pliki, które są częścią projektu ze wszystkimi ich poprzednimi wersjami.

Rewizja


Kiedy tworzone jest repozytorium, otrzymuje ono rewizja liczba zero (0). Ta liczba jest zwiększana o jeden (1) za każdym razem, gdy wykonywane jest zatwierdzenie. Numer wersji jest globalny dla repozytorium. Oznacza to, że nie ma indywidualnego numeru wersji dla poszczególnych plików w repozytorium, nawet jeśli nic się nie zmieniło w tym pliku dla tego konkretnego zatwierdzenia.

Kopia robocza

ZA kopia robocza jest lokalną kopią (lub „do kasy”) określonej wersji. Zwykle ta wersja po wyewidencjonowaniu jest „najnowszą” (nazywaną również „głowa„), ale można poprosić o poprzednią. Użytkownik może zrobić z lokalną kopią wszystko, czego zapragnie, ze świadomością, że w najgorszym przypadku może po prostu ponownie pobrać kod. Co więcej, ta kopia jest „prywatna”. Dzieje się tak, ponieważ dopóki nie zaktualizujesz lub nie zatwierdzisz swojej kopii, nie zobaczysz zmian innych osób, ani oni nie zobaczą Twoich.

Aktualizacja i rozwiązywanie konfliktów

Lokalna kopia robocza może być zaktualizowany. Oznacza to, że jeśli „wyrejestrował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 zatwierdzenie zmian przed aktualizacją do najnowszej wersji, aby pasowała do repozytorium. Odbywa się to w celu zmuszenia cię dorozwiązywać konflikty lokalnie, zanim pomyślisz o wprowadzaniu zmian w repozytorium.

Scalanie

Scalanieodnosi się do procesu, w którym zmieniony kod jest łączony w jedną wersję. Może również wiązać się z rozwiązywaniem konfliktów.

Zobowiązuje

Zobowiązanie sięto proces, w którym zmiany wprowadzone w kopii lokalnej zostaną z powrotem scalone z repozytorium. Jest to najbardziej niebezpieczna część procesu, ponieważ to tutaj wprowadzone zmiany mogą wpłynąć na inne osoby korzystające z tego samego repozytorium. Dlatego zwykle robi się to po pewnym namyśle, za zgodą zespołu i po rozwiązaniu wszelkich łączących się konfliktów.

Przepływ pracy


Najbardziej podstawowy przepływ pracy z punktu widzenia użytkownika podczas korzystania z subversion to:

1. Sprawdź istniejący kod (zwykle „głowa“).
2. Dokonuj zmian, dodawaj 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 Ubuntu/Mint można to zrobić za pomocą:

sudo aptitude zainstaluj subversion

Na DD-WRT

Jeśli postępowałeś zgodnie z „Jak zainstalować dodatkowe oprogramowanie na routerze domowym (DD-WRT)”, możesz zainstalować klienta svn, po prostu wydając:

aktualizacja opkg; opkg zainstalować subversion-client

W systemie Windows

Podczas gdy my, zaawansowani geekowie, możemy zacząć zapominać, że GUI czasami nawet istnieje, nie wszyscy to robią. Jeśli chcesz używać klienta Windows do łączenia się z repozytorium SVN, zdecydowanie najpopularniejszym z nich jest „Żółw“. Aby z niego skorzystać, po prostu Ściągnij program i zainstaluj w zwykły sposób „następny, następny, skończony”.

Utwórz „repozytorium”


Chociaż w tym przewodniku nie będziemy szczegółowo omawiać konfiguracji serwera subversion, alternatywa Google nie jest złym początkiem dla początkującego użytkownika. Aby utworzyć repozytorium Google:

  • Udaj się do Hosting kodu Google stronę internetową i „stwórz” nowy projekt.
    Sledzenie wersji za pomoca Subversion SVN dla poczatkujacych
  • Na następnej stronie wypełnij wymagane pola i wybierz rodzaj „systemu kontroli wersji”, który ma być subversion.
    1625162813 316 Sledzenie wersji za pomoca Subversion SVN dla poczatkujacych

    Uwaga: możesz rzucić okiem na różnice między licencjami oferowanymi przez Google, zanim wybierzesz jedną dla projektu.

  • Kliknij „Utwórz projekt”.

„Do kasy” swoją kopię roboczą

Po utworzeniu projektu powinieneś być w stanie znaleźć instrukcje, jak uzyskać do niego dostęp w zakładce „Źródło”.
1625162813 171 Sledzenie wersji za pomoca Subversion SVN dla poczatkujacych

Zaletą kodu Google jest to, że umożliwi anonimową wersję tylko do odczytu dla twojego projektu. Jeśli nie chcesz zajmować się trudem tworzenia własnego projektu, możesz anonimowo sprawdzić repozytorium tego autora.

Jedna uwaga na temat projektu hotfortech: ten projekt ma zawierać funkcje dodane do DD-WRT w How-To Geek (którego osobiście używam) oraz kilka osobistych poprawek. Chociaż ten projekt jest nastawiony na współpracę z opublikowanymi tutaj artykułami na temat howtogeek, nadal jest to mój prywatny projekt. Oznacza to, że jest bardzo dopasowany do mojego routera Buffalo (architektura AR71xx), mój osobisty kaprys jest podatny na sporadyczne przeładowania.

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łne polecenie w systemie Linux składa się z samego polecenia SVN, dyrektywy „checkout”, adresu repozytorium i katalogu do kasy. 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 jest sprawdzana wersja tylko do odczytu. Jeśli zdecydowałeś się na utworzenie 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 (kliknij prawym przyciskiem myszy), aby go użyć. W rzeczywistości, jeśli spróbujesz wywołać go z menu Start, otrzymasz:
1625162814 221 Sledzenie wersji za pomoca Subversion SVN dla poczatkujacych

  • Utwórz pusty katalog.
  • Kliknij go prawym przyciskiem myszy, aby wyświetlić menu kontekstowe.
  • Wybierz „Zamówienie SVN”:
    1625162814 861 Sledzenie wersji za pomoca Subversion SVN dla poczatkujacych
  • Skopiuj i wklej link do projektu (jeśli go masz) do pola tekstowego „URL”:1625162814 926 Sledzenie wersji za pomoca Subversion SVN dla poczatkujacych
  • W zależności od rozmiaru twojego projektu może to trochę potrwać, ale po zakończeniu „Do kasy” powinieneś zobaczyć coś takiego:1625162814 897 Sledzenie wersji za pomoca Subversion SVN dla poczatkujacych
  • Możesz zacząć się rozwijać.

„Aktualizuj” i „Scal” swoją kopię roboczą

Jeśli pracujesz nad kodem z kolegami lub sam aktualizujesz kod z kilku lokalizacji (np. laptopa, komputera stacjonarnego, a nawet routera), będziesz musiał zaktualizować kopię roboczą przed zatwierdzeniem najnowszych zmian.

W systemie Linux/DD-WRT

Polecenie, aby to zrobić w tych systemach POSIX, to po prostu:

svn up

W systemie Windows

  • Kliknij prawym przyciskiem myszy w katalogu roboczym i wybierz „Aktualizacja SVN”:
    1625162814 369 Sledzenie wersji za pomoca Subversion SVN dla poczatkujacych
  • Jeśli napotkasz konflikty, spróbuj postępować zgodnie z instrukcjami wyświetlanymi na ekranie i osądź, co z nimi zrobić.

„Zatwierdź” swoje zmiany

To wszystko, powinieneś być wolny od konfliktów i gotowy do aktualizacji repozytorium za pomocą swoich zmian.
Należy tutaj zwrócić uwagę na to, że powszechną praktyką jest dodawanie komunikatu „log” do zatwierdzenia, aby móc łatwo przypomnieć sobie, dlaczego dokonano zmian. W rzeczywistości repozytorium Google sprawia, że ​​jest to obowiązkowy warunek wstępny do zatwierdzenia.

W systemie Linux/DD-WRT

To jest przykład zatwierdzenia, które wprowadziłem do projektu hotfortech, który podniósł go do wersji 19:

svn commit -m „zaktualizowany, aby odzwierciedlić nowy link do pakietu ant-ads”

W systemie Windows

  • Kliknij prawym przyciskiem myszy w katalogu roboczym i wybierz „Zatwierdź SVN”:
    1625162814 158 Sledzenie wersji za pomoca Subversion SVN dla poczatkujacych
  • Powinieneś zostać przywitany przez okno, które pozwoli ci zanotować komunikat dziennika:
    1625162814 160 Sledzenie wersji za pomoca Subversion SVN dla poczatkujacych
  • Naciśnij OK, a po wyświetleniu monitu o hasło podaj wygenerowane przez Google hasło.
  • Jeśli zatwierdzenie się powiodło, powinieneś zobaczyć coś takiego:1625162814 253 Sledzenie wersji za pomoca Subversion SVN dla poczatkujacych
  • To wszystko, powinieneś być w stanie się zaangażować jak szef.


Uwagi końcowe

To powinno wystarczyć, aby zacząć. Zaleca się przeczytanie podręczników SVN, aby uzyskać głębsze i lepsze zrozumienie wszystkich zastosowań, opcji i zastrzeżeń SVN. Przypominamy również (ponownie), że subversion NIE jest jedynym systemem kontroli wersji na rynku i GIT (który został stworzony przez Linus Torvalds założyciel jądra Linuksa) wydaje się zyskiwać na popularności w ostatnich latach.

Jeśli zdecydujesz się na uruchomienie „running-config.sh” z projektu hotfortech na swoim routerze, przekonasz się, że obecnie zainstaluje się on dla Ciebie: pakiet anty-ads, skrypt Opkg geek-init, a także takie rzeczy jak pełne GNU „ls”, „less”, „BASH” i inne.

/jffs/svn/hotfortech-dd-wrt/running-conf.sh

Więcej funkcji jest w toku i zostaną dodane w przyszłości.

Administratorzy systemu będą kodować swoje wyjście z kodowania.

Czy ten post był pomocny?