If-Koubou

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

Śledzenie wersji z Subversion (SVN) dla początkujących (Jak)

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. Ten 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 stenograficzną 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, jeszcze 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 router obsługujący OPKG z obsługą DD-WRT. Dodaliśmy również przykład projektu, który możesz zrealizować i użyć dla wspomnianego routera.

Czym jest Subversion?

Subversion w żadnym wypadku nie jest 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 na odzyskanie starszych wersji danych lub sprawdzenie historii 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. Opracowanie tego rodzaju procedury może być użyteczne dla pojedynczej 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 ze wszystkimi ich wcześniejszymi wersjami.

Rewizja

Po utworzeniu repozytorium otrzymuje numer wersji zerowy (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

Kopią roboczą jest 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 razie może po prostu wylogować się z kodu ponownie. 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 zatwierdzenie zmian przed zaktualizowaniem do najnowszej wersji, aby dopasować je do repozytorium. Robi się to, 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ązuje się

Zatwierdzanie to proces, w którym zmiany dokonane w lokalnej kopii zostaną scalone z powrotem do 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 postępowałeś zgodnie z "Jak zainstalować dodatkowe oprogramowanie na Twoim routerze domowym (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ąć zapominać, ż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 omówimy szczegółowo, 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 podlegać subversion.

    Uwaga: możesz rzucić okiem na to, jaka jest różnica między licencjami oferowanymi przez Google, zanim wybierzesz jedną dla projektu.
  • Kliknij "Utwórz projekt".
"Do kasy" kopię roboczą

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, musisz 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 startowego, 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), będziesz musiał 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":
  • W przypadku wystąpienia konfliktów 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 "zaktualizowany, 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ę pomyślnie, powinieneś zobaczyć coś takiego:
  • To jest to, powinieneś być w stanie popełnić jak BOSS.

Uwagi końcowe
To powinno wystarczyć, aby zacząć. Zalecane jest zapoznanie się z książkami referencyjnymi SVN, aby lepiej zrozumieć wszystkie zastosowania, opcje i zastrzeżenia SVN. Przypominamy również (znowu), ż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", "less", "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.