Heavymind
Gdyby ludzie rozmawiali tylko o tym, co rozumieją, zapadłaby nad światem wielka cisza.

02/04/2011

Instalacja servera svn na ubuntu 10.04 /32bit

Opublikowane jako: Apache, Subversion — Tags: , , — Kubek Bartosz @ 15:51

Możliwe są 3 rodzaje instalacji serwera svn:

  • SVN+SSH
  • SVN+Apache
  • SVNServe

Ja wybrałem “SVN+Apache”.
Generalnie, instrukcje te powinny działać dla przedziału wersji ubuntu 7.x do 10.x, jednak zaznaczam że testowane było na 10.04 32bit.

Apache2 musi już działać (i być dostępne z zewnątrz (z internetu) jeśli do SVN też chcesz mieć dostęp), a program `svnadmin` powinien być zainstalowany. Wywołując ‘svnadmin help‘ sprawdzam czy działa. Jak nie, to należy doinstalować pakiet `subversion`.

Czas rozpocząć.
Tworzę katalog na repozytoria svn:
sudo mkdir -pv /var/svnRepositories
oraz nadaję my prawa 777:
sudo chmod 777 /var/svnRepositories

Na później, tworzę standardową strukturę katalogów dla projektu, gdzie “myProject” to nazwa projektu:

mkdir -pv /tmp/layout/myProject/branches/work #( tutaj trzyma się wersję rozwojową )
mkdir -pv /tmp/layout/myProject/tags #( tutaj tworzy się tagi wersji stabilnych )

Przelogowuję się na użytkownika www-data (czyli apache2), tak by przez niego stworzone pliki i katalogi miały właściciela apache2, które to apache2 później będzie pisało i czytało z repozytorium podczas korzystania z SVN):
sudo su www-data

Tworzę jedno główne repozytorium svn:

cd /var/svnRepositories
svnadmin create --fs-type fsfs /var/svnRepositories/svn

Tworzę plik z uprawnieniami dostępu do wyżej stworzonego repozytorium:

cd /var/svnRepositories
touch svn/conf/svn-auth-file
htpasswd -cmd svn/conf/svn-auth-file bkubek

…gdzie “bkubek” to nazwa usera. Po tym trzeba wpisac hasło by je stworzyć dla tego usera.

Importuję standardowy zestaw katalogów dla projektu (stworzony w punkcie 4 )
svn import /tmp/layout http://127.0.0.1/svn -m"initial structure"
jeśli CLI zapyta o:
    Hasło ‘www-data’:
to klikam “enter” by zapytał o innego usera svn, dla którego znam hasło. Dokładnie to podam mu usera “bkubek” z punktu 7. Czyli :
    Obszar uwierzytelniania: Subversion repository
    Użytkownik: bkubek
    Hasło ‘bkubek’: #… podaję wcześniej stworzone hasło
gdy CLI zapyta mnie:
    Zapisać hasło bez szyfrowania (tak/nie)?
…odpowiadam “tak”

Wychodzę z usera www-data poleceniem:
exit

Repozytorium stworzone. Teraz trzeba SVN sprzęgnąć z Apache.
Apache2 raczej posiada już MOD “dav”. Aby to sprawdzić, sprawdzam czy w katalogu:
    /etc/apache2/mods-available
…istnieją pliki:
    dav.load
    dav_fs.conf
    dav_fs.load
    dav_lock.load
Powinny. Trzeba zrobić im linki symboliczne do lokalizacji:
    /etc/apache2/mods-enabled

Apache2 raczej nie posiada domyślnie MODa “dav” do svn. Czyli w katalogu
    /etc/apache2/mods-available
…raczej nie istnieją pliki:
    dav_svn.conf
    dav_svn.load
…dlatego instaluję pakiet:
sudo aptitude install libapache2-svn

Po tym sprawdzić mi należy czy te dwa pliki :
    dav_svn.conf
    dav_svn.load
…mają automatycznie już symlinki w:
    /etc/apache2/mods-available
…i jeśli nie, to trzeba je stworzyć, z orginałów w:
    /etc/apache2/mods-available

Teraz konkret sprawa: dopisanie do konfiguracji apache informacji o tym gdzie leży svn repozytorium:
sudo mcedit /etc/apache2/apache2.conf

…i dopisuję na końcu pliku :

<Location /svn>
    DAV svn
    SVNPath /var/svnRepositories/svn/
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile /var/svnRepositories/svn/conf/svn-auth-file
    Require valid-user
</Location>

Teraz restart apache2:
sudo /etc/init.d/apache2 restart

…i wypadało by usunąć katalog:
    /tmp/layout

Koniec. Serwer SVN działa :) Powinien ;)

Stawianie lokalnej kopii svn (checkout)

Ot taki bonus. Powiedzmy że chcemy nowy projekt postawić w :
    /var/www/myProject/
więc jedziemy:

sudo mkdir -pv /var/www/myProject
sudo chmod 777 /var/www/myProject
cd /var/www/myProject

teraz wystarczy przez svn wskazać że tutaj jest nasz projekt i “z-checkout-ować” repo svn tutaj:
svn co http://127.0.0.1/svn/myProject/branches/work .

teraz można dodać i wysłać przykładowy plik do servera svn:

touch example.txt
svn add example.txt
svn ci -m"example file"

fine.



12/04/2008

Dostęp do kodów źródłowych samouczków Zend Framework

Opublikowane jako: Subversion, Zend — Tags: , , , , — Kubek Bartosz @ 15:08

Świadom zapotrzebowania, przygotowałem drodzy moi czytelnicy, dostęp do kodów źródłowych, gotowych przykładów samouczków z serii Zend Framework. Dostęp do źródeł za pośrednictwem serwera SVN, udostępniam dzięki usługom Google Code.

Osobom nie znającym jeszcze systemu kontrolowania wersji Subversion (SVN), polacam zapoznanie się z jego możliwościami i obsługą, ponieważ jest to jedno z podstawowych narzędzi każdego programisty. Aktualnie, czasowo nie jestem w stanie, by streścić podstawy obsługi jakiegokolwiek klienta SVN, dlatego odsyłam do źródeł wujka Google.

Szczegóły nt. dostępu do kolejnych tagów repozytoriów odpowiednich części samouczka, znajdują sie w dodanych przez mnie sekcjach owych samouczków. Są nimi kolejno:

Celowo nie zamieściłem odnośników do repozytorium z kodem źródłowym aplikacji z III części samouczka “Zend Framework Tutorial - Rozwijanie Zend View - Zend Layout“, dlatego że po opublikowaniu Zend Framework w wersji 1.5.1, treść tego artykułu wymaga gruntownego przepisania. Wiąże się to bezpośrednio z faktem załączenia do jądra Zend Frameworka biblioteki Zend_Layout, która w III części samouczka jest opisana jako dodatkowa biblioteka rozszerzająca. Przy tej okazji nie radzę wręcz, by starać się korzystać z treści tej części samouczka.



29/08/2007

Koszmar powrócił pod nową postacią: svn:ignore

Opublikowane jako: Subversion — Tags: , — Kubek Bartosz @ 22:03

Przez okres ostatniego tygodnia, starałem się odpowiednio skonfigurować repozytorium SVN projektu nad którym trzymam pieczę. Najważniejszą rzeczą jaką musiałem wykonać było wykluczenie każdej treści z repozytorium, która nie była statyczną częścią projektu. Mam tutaj na myśli pliki i katalogi, które zawierały różnorodne dane sesyjne, logów czy cache. Niestety, jak się okazało, zadanie to nie jest w cale takie proste, a rozwiązywanie drobnych problemów jakie można napotkać wykonując odpowiednie operacje jest bardzo czasochłonne. Tak więc jak uczyniłem to już w jednym z poprzednich artykułów, mając na uwadze chęć pomocy wszystkim, którzy będą kiedyś zmuszeni przechodzić przez podobne zagadnienia, postaram się opisać moje eksperymenty i doświadczenia. Potrzeba opisania tego jest tym większa, że po raz pierwszy nie mogłem “zguglować” problemu, by dostać satysfakcjonującą odpowiedź na pytanie: “jak ignorować katalogi w svn”.

(więcej…)



The nightmare has returned with new name: svn:ignore

Opublikowane jako: Subversion — Tags: , — Kubek Bartosz @ 21:53

During a time of last week I’ve tried to properly set up of subversion project repository that I’m responsible of. The most important thing I had to do was to exclude all content from repository, that is not a static part of the project. What I mean is a directories and files that contains miscellaneous logs, cache or sessions data. Unfortunately it was another nightmare, cause I’ve found this task very complicated. So as once before, I’d like to share with You about my experiments, to prevent You of wasting time as I did. I’m writing it especially that You will not easily “google” a question : “how to ignore directories in SVN” and get satisfy result.

(więcej…)



Oparte na WordPress