16 września 2008

Nowy sezon spotkań Warszawa JUG rozpoczęty i moje lokalne repozytorium SVN

Nie potrafię tego wytłumaczyć, ale czy to wdzięk i powab Bolesława Dawidowicza, czy też tematyka - LDAP, czyli kiedy relacyjna baza danych nie jest najlepszym rozwiązaniem, ale na otwierające, 33. spotkanie grupy Warszawa JUG przyszły tłumy - naliczyłem ponad 60 osób, w tym kilka płci żeńskiej (!) Tym samym nowy sezon spotkań grupy mamy rozpoczęty, a kolejne - 30 września - powinno spotkać się z niemniejszym zainteresowaniem, gdyż nie tylko, że temat ciekawy Zrób to sam: kompilator - podstawy języków formalnych, ANTLR i ANTLRWorks, ale któż będzie go prezentował - sam Tom (aka Szimano) ;-) Co tu dużo ukrywać - po prostu zapowiada się "tłumny" wrzesień. Szkoda, że nie wziąłem aparatu, bo zdjęcia z pewnością uatrakcyjniłyby wpis i sami moglibyście przekonać się o celowości przybycia na spotkanie (chociażby, aby znaleźć się na zdjęciu). A jakie dyskusje się toczyły. Widać, że ludzikom brakowało rzeczowych dyskusji o technologiach, bo można było odczyć pewny letni "niedosyt technologiczny". Przygotowujemy się do kolejnej konferencji Warsjava + Eclipse DemoCamp 2008 w dniu 22 listopada 2008 i dyskusje będą z pewnością jeszcze bardziej ożywione. Do zobaczenia na kolejnym 34. spotkaniu 30-tego!

Zanim jednak pojawiłem się na spotkaniu rozwiązałem pewien problem organizacyjny. Ileż to razy przyszło mi pracować lokalnie z dokumentem czy projektem, kiedy to chciałem móc wrócić do poprzedniej wersji? Na pewno uzbierałoby się tego trochę, ale jakimś cudem, mimo ciągłej pracy z repozytoriami SVN, nigdy nie przyszło mi do głowy, aby założyć własne...lokalnie. W końcu nic nie kosztuje, a może uratować cenny czas. Dzisiaj przypadkiem trafiłem na stronę Subversion Cheat Sheet i zrozumiałem, że koniec dumania czy warto, a po prostu należy skorzystać, bo jest i to całkowicie bezpłatnie (finansowo i czasowo). Teraz każdorazowo przy utrzymywaniu jakiegokolwiek pliku tekstowego umieszczę go w moim lokalnym repozytorium. W końcu zamiast serii Ctrl+Z można skorzystać z svn revert, czyż nie?

Rozpoczynam od utworzenia lokalnego repozytorium SVN.
 jlaskowski@work /cygdrive/c/projs/sandbox
$ svnadmin create 'c:/projs/sandbox/.svn_repo'
Pora na zestawienie początkowej struktury katalogowej projektu, który trafi do repozytorium. Zaleca się utworzenie podkatalogów trunk (główna gałąź rozwojowa), branches (odgałęzienia) oraz tags (wersje oznakowane).
 jlaskowski@work /cygdrive/c/projs/sandbox/projekt
$ mkdir trunk branches tags
W trunk umieszczam przykładowy plik README.txt.
 jlaskowski@work /cygdrive/c/projs/sandbox/projekt
$ ls -lR
.:
total 0
drwxr-xr-x+ 2 jlaskowski None 0 Sep 16 23:24 branches
drwxr-xr-x+ 2 jlaskowski None 0 Sep 16 23:24 tags
drwxr-xr-x+ 2 jlaskowski None 0 Sep 16 23:24 trunk

./branches:
total 0

./tags:
total 0

./trunk:
total 0
-rw-r--r-- 1 jlaskowski None 0 Sep 16 23:23 README.txt
Wszystko do tej pory robię z poziomu katalogu projektu, który ostatecznie importuję do lokalnego repozytorium.
 jlaskowski@work /cygdrive/c/projs/sandbox/projekt
$ svn import . 'file:///c:/projs/sandbox/.svn_repo/projekt' -m 'Rozpoczynamy'
Adding trunk
Adding trunk/README.txt
Adding branches
Adding tags

Committed revision 1.
Pierwsza wersja znalazła się w repozytorium. Teraz wystarczy pobrać projekt na dowolne miejsce na dysku.
 jlaskowski@work /cygdrive/c/projs/sandbox
$ svn co 'file:///c:/projs/sandbox/.svn_repo/projekt/trunk' projekt
A projekt/README.txt
Checked out revision 1.

jlaskowski@work /cygdrive/c/projs/sandbox
$ ls -l projekt/
total 0
-rw-r--r-- 1 jlaskowski None 0 Sep 16 23:26 README.txt
I tyle. Projekt jest już utrzymywany przez SVN. Oczywiście nie uchroni to przed awarią komputera, ale jako wsparcie kopii zapasowych, powinno być wręcz nieodzowne. Teraz mogę już zmieniać pliki dowolnie i przy najmniejszym wahaniu wrócić do poprzednich wersji. Mam wybór i o to chodzi.

3 komentarze:

  1. Szczegolnie do lokalnych projektow najlepszy jednak jest git. Nie trzeba zadnych repository po prostu wchodzisz do katalogu z projektem i:
    git init
    git add *
    zmiany zmiany zmiany i...
    git commit -a -m "blah blah"

    Kiedy chcesz zrobic backup na zewnetrznym serwerze to po prostu 'git push' i juz... Ale jednak w wiekszosci przypadkow, szczegolnie jesli chodzi o zwykle projekty-experymenty to wystarcza jednak taka lokalna historia katalogu.

    pozdrawiam,
    kuba

    OdpowiedzUsuń
  2. Słyszałem/czytałem, że git to svn Linusa, więc warto byłoby się jemu przyjrzeć. Rozumiem, że git init to po prostu skrót dla svnadmin create "ścieżka", bo w końcu gdzieś owe repozytorium musi być. Wolałbym nie trzymać go w tym samym katalogu, co projekt, chociaż w przypadku jedynie wymagania dla wersjonowania dokumentów, dlaczego nie. Dzięki za inspirację, aby spojrzeć na gita. Może polecasz jakiś dokument w stylu "Git w 5 minut", abym nie musiał zaglądać do pełnej dokumentacji (jeszcze nie zaglądałem, więc może tam znajdę ową 5-ciominutówkę)? Jeszcze raz dziękuję!

    OdpowiedzUsuń