Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Swój własny SVN - czyli kopia zapasowa naszej pracy...

Balu 06 Sie 2008 05:02 5254 7
  • #1 06 Sie 2008 05:02
    Balu
    Poziom 38  

    Witam. Zajmuję się obecnie pewnym projektem... Jak to w naszym życiu bywa piszemy program... piszemy... Programujemy, cieszymy się, że działa... Potem zaczynamy sprzątanie(usuwanie "zbędnych " fragmentów)... znów programujemy... i co się okazuje... NIE DZIAŁA.
    Ja to dziś przeszedłem, prawie biała gorączka... Czemu nie działa? Co za dużo usunąłem? Co się stało? Czort wie! Ale tak być nie musi...

    Jest takie fajne narzędzie nazywające się SVN.

    Wikipedia napisał:

    Subversion (znany również jako SVN) - system kontroli wersji, który powstał w celu zastąpienia CVS. Funkcjonalnie jest z nim zgodny w większości przypadków, z kompatybilności zrezygnowano tylko tam, gdzie było to niezbędne.

    W przełożeniu na mniej wikipediowe, możemy tam trzymać swoje kopie zapasowe i jeśli zajdzie potrzeba, używać ich (przywrócić).

    Co nam będzie potrzebne:
    - Miejsce gdzie będziemy trzymać nasze kopie zapasowe (własny dysk, serwer zewnętrzny)
    - Program na PC.

    Gdzie będziemy trzymać repozytoria?
    Jeśli wybieramy własny dysk, mamy pewność, że nikt nie "dobierze" się do naszych plików... ale, mamy też niemiłą możliwość, że padnie nam dysk wraz z repozytoriami... Ja wybrałem zewnętrzny serwer.
    No to kolejny problem... gdzie umieścić dane... Po krótkim acz owocnym poszukiwaniu wybór padł na http://www.assembla.com/
    Mają w swojej ofercie 3 opcje... 2 płatne... i trzecią dla Nas:)
    No to jedziemy z koksem:
    Zakładanie konta na Asembli
    (Znający angielski myślę, że mogą ominąć tą część:D)
    1) Klikamy wielki guzik na stronie głównej "Register Now"
    2) Wypełniamy formularz podając PRAWDZIWY email.
    3) Jeśli wszystko poszło ok, założyliśmy konto, czas na aktywację z e-maila. Klik klik...aktywowane;)
    4) Wybieramy z zakładek na górze "Spaces" i "Create new space".
    5) Space name - wpisujemy Nazwę naszego "miejsca", URL Name - nazwę jaką będziemy używali - np. testowy_. Zaznaczamy pierwszy haczyk "Software developers (integrated)", wpisujemy ew. opis w polu Descriptiom i klikamy next.
    6)Zakładka Security -> Wybieramy Allow NONE for public access. Pod żadnym pozorem NIE zaznaczamy "Anybody can join this space." - jeśli zaznaczymy wszyscy będą mieli dostęp do naszych jakże cennych źródeł. W members access wybieramy All. Klikamy next.
    7)Jeśli chcemy z kimś współtworzyć kod, wpisujemy tutaj jego @, next...
    8) Wiki...Next....Appearance....NEXT ot i utworzyliśmy właśnie nowe "miejsce - przestrzeń"
    Wybieramy teraz zakładkę "Trac / SVN" i widzimy w niej link do naszego repozytorium. Nie zamykamy :)





    Program kliencki
    - Chyba najlepszy do tego celu prosto od żółwika:).
    Zakładka download...
    Ściągamy najświeższą wersję (Current) odpowiednią dla naszego systemu :)
    Będziemy potrzebowali również spolszczenia...(Będziemy? Może się przydać ;-) )
    Po ściągnięciu instalujemy najpierw sam program, potem spolszczenie... następnie resecik:)
    Wszystko oczywiście przebiegło pomyślnie i bez błędów;)
    No i mamy nowe zwierzątko w systemie, teraz prawym klawiszem myszy klik w dowolnym katalogu i widzimy dwie nowe opcje:
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    SVN Checkout - którego narazie ignorujemy i TortoiseSVN wchodzimy w a następnie settings.
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Od razu zmieniamy Language na Polish, i zahaczamy haczyk przy "Use "_svn"... bla bla bla":)
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Jest to opcja która jest czasem dość pomocna - nie wszystkie programy lubią pracę z katalogami z kropką. Klikamy OK i już mamy nasz całkiem nowy GUI po polsku :)

    Dodajemy nasz nowo założony serwer do repozytorium.
    Prawy przycisk gryzonia, TortoiseSvn, Przeglądarka repozytorium.
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    W okienko które nam się pojawiło wklejamy link który dostaliśmy na assembli.
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Wyskoczy monit o hasło i nazwę użytkownika - dobry znak, nasze dane są w miarę bezpieczne;)
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Wpisujemy to co przy rejestracji na assembli i zaznaczamy haczyk co by pamiętał nasze dane.
    Zamykamy okienko jeśli wszystko poszło ok.
    Teraz część najważniejsza nasz dotychczas napisany program...
    Klikamy prawym przyciskiem na katalogu z naszym dziełem, wybieramy TortoiseSVN, Importuj.
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Wyskakuje okienko z wyborem repozytorium do którego chcemy importowproać (jeśli mamy kilka różnych - możemy wybierać;) ) i miejsce na komunikat - moja pozycja tutaj Napisać co zrobione dotychczas,
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    guzik ok, wyskakuje okienko z importem. Jeśli wszystko poszło po Naszej myśli, nasze dane są już na serwerze. klikamy OK.
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Teraz nasz dotychczasowy katalog (tak dla bezpieczeństwa spakować, schować:) ).((Może beż screenów;-) ).

    Od tego momentu Nasze dane są BEZPIECZNE na serwerze.
    Ale jak je z niego odzyskać?:) Bardzo prosto.
    Tworzymy Sobie gdzieś tam katalog w którym od dziś będziemy pracować.
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Prawy guzik, SVN Pobierz.
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Jako że w naszym Rep. mamy tylko ten projekt, wybieramy najwyższy katalog, OK. Wyskakuje okienko w którym ważną dla nas rzeczą na chwilę obecną jest Głębokość pobierania - Pełna rekursywność, Wersja HEAD. OK, OK, ściągnęło się.Widzimy na naszym katalogu zielony haczyk aka. ptaszek:)
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Czyli, mamy wersję NIEZMIENIONĄ w stosunku do wersji z serwera.

    Właśnie ściągnęliśmy naszą PIERWSZĄ kopię zapasową:)
    Zabawy ciąg dalszy.

    Otwieramy jeden z plików i zmieniamy w nim coś...(choćby dopisujemy komentarz). Zapisujemy... I co widzimy? Na właśnie zmienionym pliku pojawił się czerwony groźnie wyglądający wykrzyknik.
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Oznacza to mniej więcej tyle, że nasza wersja nie jest już zgodna z tym co trzymamy na serwerze (co oznacza, że mamy nowszą wersję ;-) - trzeba ją zabezpieczyć na serwerze!). Klikamy na katalogu z projektem, wybieramy SVN zatwierdź zmiany. Teraz mamy okienko w którym widzimy:
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Koniecznie wpisujemy co zmieniliśmy, i możemy na dole zaznaczyć które pliki chcemy wysłać na serwer - zrobić ich kopię zapasową:) nie zmieniamy nic:) (automatycznie pliki zmienione są zaznaczone).OK.
    Co widzimy;
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    (U Was powinno pisać Zakończono w wersji: 2 (ja po prostu pisząc zrobiłem wcześniej jeszcze jedną zmianę).
    Co dla Nas ważne? Żółwik sam zinkrementował wersję :) Za chwilę zobaczymy do czego nam się to przyda:)
    Kilka razy (tak ze 2) zmieniamy coś w kodzie i wysyłamy jak wyżej na serwer.

    Po tych operacjach, uznajemy jednak, że skasowaliśmy Sobie coś bardzo ważnego, nic się nie stało! Mamy SVN... Przywracamy więc poprzednią wersję! (Mając zapisaną obecną i wysłaną na serwer - czemu nie!).

    Przywracamy starszą wersję programu
    Prawy przycisk myszki, SVN, Uaktualnij do wersji...
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    I dostajemy:
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Co Nas interesuje: Po pierwsza wersja: Możemy wybrać wersję HEAD - czyli najnowszą jaka jest na serwerze - ale nie robimy tego - przecież ona zawiera błąd! Chcemy wcześniejszą wersję, możemy wpisać z głowy numer wersji, bądź... wybrać Pokaż log. Tak też czynimy.
    I widzimy jak poniżej:
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    (Wersja 1 i 2 to moje niezwiązane z tutorialem svny więc... nie widać:P)
    Co widzimy: Wersja! Dla nas najważniejsza chyba rzecz, ale oprócz tego, dlaczego była nowa wersja - tutaj 2,3,4 widzimy, bo była zmiana, 1 dodano pliki. Widzimy czas zmian i co najważniejsze... Komunikat! Czyli nasza informacja co zmieniliśmy i dlaczego - mają kilkaset wersji a i tak bywa, jest to najwygodniejszy sposób odnalezienia interesującej Nas wersji. Wybieramy np. 3. Czyli dodano komentarz, bo uznajemy, że stos na czarownice rozrównoważył nam stos;) (a co!) Wybieramy OK, teraz nasze poprzednie okienko nie ma już zaznaczonej wersji HEAD a wybraną przez Nas 3 wersję!
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    OK, robi się aktualizacja, Wszystko przebiegło bez problemów -
    Swój własny SVN - czyli kopia zapasowa naszej pracy...
    Cieszymy się odzyskanym programem!

    Ot i tyle. Mam nadzieję że chociaż jednej osobie się przyda :) A każdy kto kiedyś będzie szukał cały dzień błędu, niech Sobie przypomni o SVNie;)
    Człowiek się zawsze uczy na błędach :D

    Nie może się obejść bez Greetings;)

    Więc w dzisiejszym odcinku podziękowania dla BoskiDialer który przypomniał mi, że SVN to nie tylko narzędzie dla informatyków robiących projekty mające dziesiątki tysięcy linii kodu, ale również dla Nas Elektroników - Programistów.

    Enjoy.;-)

    P.S. Jakbyście kiedyś używali rs485...pamiętajcie, w Atmelu RX nie ma automatycznego podciągania:PPPPP (Shame on them:P).Trzeba ręcznie 1 na port wpisać:)

    0 7
  • #3 06 Sie 2008 08:33
    Dr_DEAD
    Poziom 28  

    Bardzo fajny artykulik, mam nadziej że będzie rozwijany, bo SVN to masa opcji i możliwych scenariuszy które ciężko zrozumieć początkującemu.
    Chciałbym tylko dodać że gdy użyjemy opcji "Uaktualnij do wersji.." na projekcie w którym dokonane są zmiany nie wysłane jeszcze na serwer, to zostaną one zmergowane (połączone) ze zmianami wynikającymi z cofania się do starszej wersji. Jeżeli zmiany będą dotyczyły tej samej linijki to pojafi się Konflikt który rozwiążemy za pomocą Narzędzia do Rozwiązywania Konfliktów :-). Aby uniknąć takiej sytuacji, gdy nie ma się wprawy w rozwiązywaniu konfliktów, opcji "Uaktualnij do wersji..." należy używać tylko na folderach z "Białą Fajką na Zielonym Tle".

    Dodano po 3 [minuty]:

    mmm777 napisał:
    Tutoriali po polsku w necie trochę jest:
    Link, czy Link.

    Pierwszy nie za bogaty, a drugi to "textówka" raczej dla Linuxowców niż użytkowników Windy.

    0
  • #5 06 Sie 2008 12:40
    Balu
    Poziom 38  

    mmm777 było to pisane dla Elektroników, Informatycy chyba wszyscy szanujący się (piszący w teamie) znają svn, tickety i inne fajne opcje udostępnione przez Assemblę:)
    No i oczywiście nie używają assembli wtedy, tylko własnych serwerów;-) My przynajmniej tak robiliśmy :]

    Anyway zostało to napisane stricte dla Elektroników! Z opisem do czego to służy i krok po kroku jak ugryźć:)

    0
  • #6 06 Sie 2008 12:56
    mmm777
    Poziom 29  

    Twój tekst jest bardzo dobry i przydatny.
    Użycie repozytorium w sieci to bardzo dobry wybór.

    Ale trochę dodatkowych linków raczej nie zaszkodzi, choćby do Link.

    Nie zaszkodzi też informacja, że warto ustawić Global ignore pattern:
    bin obj *.pdb *.exe *.suo
    - jeżeli używa się VS.

    Możliwość integracji z VS Express też jest warta wspomnienia...Mało co się z Express integruje ;)

    0
  • #7 06 Sie 2008 13:01
    Balu
    Poziom 38  

    Jak już to lepiej byłoby ignorować dla Nas pliki eep, elf, lss, hex, map, i o.d ;-) Rzadko kiedy z uC robią się exeki:P

    0
  • Pomocny post
    #8 10 Sie 2008 00:53
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Balu napisał:

    [...]
    Po ściągnięciu instalujemy najpierw sam program, potem spolszczenie... następnie resecik:)
    [...]
    settings.
    [...]
    zahaczamy haczyk przy "Use "_svn"

    po tym kroku potrzebny jest kolejny restart, poniewaz Tortoise nie bedzie kumal jeszcze, ze katalog z '_svn' to repozytorium.

    4\/3!!

    0