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
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.
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.
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.
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.
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.
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:
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:
"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
"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
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.