Repozytoria

From Rootnode

Jump to: navigation, search
Strona jest w trakcie redagowania.

Contents

CVS

Aby korzystać z CVSu musisz skonfigurować logowanie do serwera po kluczach. Można to zrobić poprzez dodanie swojego klucza lokalnego do pliku ~/.ssh/authorized_keys lub ściągnięcie pliku klucza prywatnego ~/.ssh/id_rsa do siebie.

  • Tworzymy repozytorium CVS w katalogu domowym:
cvs -d /home/<login>/sciezka/do/CVS init
  • Na komputerze lokalnym ustawiamy:
export CVS_RSH="ssh"
export CVSROOT="${USER}@<serwer>.rootnode.net:/home/<login>/sciezka/do/CVS"
przykład
cvs -d /home/bongo/CVS init
export CVS_RSH="ssh"
export CVSROOT="bongo@k.rootnode.net:/home/bongo/CVS"




Subversion

Subversion (znany również jako SVN) - system kontroli wersji, który powstał w celu zastąpienia CVS. Wciąż najpopularniejszy, jednak coraz częściej wypierany przez Git.


Repozytorium przez HTTP / www / WebSVN

Przykładowe repozytorium umieścimy w katalogu ~/www/svn. Wybór katalogu jest oczywiście (prawie) dowolny - musicie tylko pamiętać, żeby całe repozytorium znajdowało się gdziekolwiek w katalogu ~/www. Może się ono znajdować w htdocs wybranego vhostu, obok katalogu htdocs czy nawet w logs.

Przechodzimy do wybranego przez nas katalogu, tworzymy odpowiednie katalogi, tworzymy repozytorium poleceniem svnadmin

przykład
$ cd ~/www
$ mkdir svn
$ mkdir svn/repo
dla użytkowników Korna:
$ svnadmin create --pre-1.5-compatible ~/www/svn/repo
dla użytkowników Stallmana:
$ svnadmin create ~/www/svn/repo

Upewniamy się, że wszystko wygląda tak jak należy wydając polecenie tree

$ tree ~/www/svn
/home/$USER/www/svn
`-- repo
    |-- README.txt
    |-- conf
    |   |-- authz
    |   |-- passwd
    |   `-- svnserve.conf
    |-- dav
    |-- db
    |   |-- current
    |   |-- format
    |   |-- fs-type
    |   |-- revprops
    |   |   `-- 0
    |   |-- revs
    |   |   `-- 0
    |   |-- transactions
    |   |-- uuid
    |   `-- write-lock
    |-- format
    |-- hooks
    |   |-- post-commit.tmpl
    |   |-- post-lock.tmpl
    |   |-- post-revprop-change.tmpl
    |   |-- post-unlock.tmpl
    |   |-- pre-commit.tmpl
    |   |-- pre-lock.tmpl
    |   |-- pre-revprop-change.tmpl
    |   |-- pre-unlock.tmpl
    |   `-- start-commit.tmpl
    `-- locks
        |-- db-logs.lock
        `-- db.lock

9 directories, 23 files


Konfigurujemy Apache'a

Aby wykonać ten krok, powinieneś posiadać już skonfigurowany jakikolwiek vhost, jeśli jeszcze tego nie zrobiłeś zajrzyj na stronę o zakładniu vhostu i wróć tutaj. W tym kroku skorzystamy z pliku konfiguracyjnego ruletheworldwithpowerofsvn, który należy stworzyć w katalog /conf naszego vhostu...

przykład
$ cd www/bongo.pl/conf
$ touch ruletheworldwithpowerofsvn

... i odpowiednio uzupełnić. Przykładową konfigurację oraz objaśnienie poszczególnych parametrów (rozdzielonych dwukropkiem) znajdziesz poniżej. Konfigurację można oczywiście zmieniać i pliki konfigurujące prawa dostępu czy użytkowników mogą znajdować się w dowolnym miejscu.


Image:Warning.png

Należy pamiętać, że wszystkie pliki powinny być gdziekolwiek w katalogu /home/<login>/www.
. Do plików należy odwoływać się ścieżką bezwzględną - tj. /home/<login>/www zamiast ~/www
. W pliku ruletheworldwithpowerofsvn nie wolno wstawiać pustych linii.


  repo:/home/bongo/www/svn::Witaj:/home/bongo/www/svn/svnaccess:/home/bongo/www/svn/authz 
  a w przypadku skorzystania z opcji iwantsvnpath (opis niżej)
  repo:/home/bongo/www/svn/repo::Witaj:/home/bongo/www/svn/svnaccess:/home/bongo/www/svn/authz  

   1. lokalizacja (URI) - człon, który dopiszemy do adresu naszego vhostu, aby dostać się do repozytorium (repo),
   2. katalog nadrzędny względem repozytorium(/www/svn) lub katalog repozytorium na dysku (/www/svn/repo),
   3. opcjonalna ścieżka do pliku xslt (pusto),
   4. nazwa wyświetlana przy logowaniu (Witaj),
   5. ścieżka do pliku z użytkownikami (/home/bongo/www/svn/svnaccess),
   6. ścieżka do pliku z prawami dostępu (/home/bongo/www/svn/authz).

Analogicznych wpisów w ruletheworldwithpowerofsvn może być oczywiście więcej, każdy w nowym wierszu. Wystarczy skopiować jeden wpis i zmienić pierwsze dwa parametry (URI i ścieżkę do katalogu repozytorium). Dzięki temu możemy bez trudu ustawić kilka repozytoriów.


Ustawiamy uprawnienia

Aby SVN działał musimy jeszcze skonfigurować konta użytkowników, w tym celu w miejscu podanym we wpisie w ruletheworldwithpowerofsvn tworzymy odpowiednie pliki: svnaccess - jego nazwa i lokalizacja jest zależna od szóstego parametru wpisu. W naszym przypadku dla użytkownika bongo i domyślnej ścieżki z poprzedniego punktu robimy tak:

przykład
$ cd ~/www/svn
$ htpasswd -c svnaccess bongo                       

Po wpisaniu hasła utworzony zostanie użytkownik bongo, teraz należy mu nadać uprawnienia do zapisu/odczytu repozytorium. Wszelka konfiguracja odbywa się poprzez plik podany jako siódmy parametr w ruletheworldwithpowerofsvn - plik authz.

$ cd ~/www/svn
$ touch authz
[/]
bongo = rw
* = r

[repo:/]
bongo = rw
* = r

W powyższym przykładzie nadaliśmy wszędzie prawa odczytu i zapisu dla użytkownika bongo i prawa odczytu dla wszystkich pozostałych. Możemy też tworzyć grupy użytkowników, wygląda to tak:

[groups]
devel = marek, zdzisiek

[/]
@devel = rw
bongo = r
* =

[repo:/]
@devel = rw
bongo = r
* =

Tutaj nadaliśmy prawa odczytu i zapisu dla użytkowników z grupy devel, oprócz tego użytkownik bongo ma prawo do odczytu, a dla całej reszty zostaje figa z makiem.


iwantsvnpath

Standardowo adres dostępowy składamy w taki sposób: [nazwa_naszego_vhostu]/[URI_podane_w_ruletheworldwithpowerofsvn(pierwszy_parametr)]/[katalog_w_repozytorium] Domyślnie w apache'u zapisywana jest konfiguracja SVN-a z polem SVNParentPath. Oznacza to, że w naszym przypadku katalog /home/<login>/www/svn jest rodzicem repozytoriów, wewnątrz niego właśnie powinniśmy tworzyć repozytoria. Innymi słowy jeśli stworzymy w pliku ruletheworldwithpowerofsvn wpis:

repo:/home/<login>/www/svn::witaj:/home/<login>/www/svn/svnaccess:/home/<login>/www/svn/authz

to nasz adres dostępowy do repozytorium o nazwie repo będzie następujący: http://bongo.pl/repo/repo Jeśli podwójna nazwa nam nie w smak, możemy utworzyć plik iwantsvnpath w katalogu konfiguracyjnym vhostu, dzięki któremu zamiast zmiennej SVNParentPath w konfiguracji SVN-a w Apache'a będzie zapisywana zmienna SVNPath.

$ touch ~/www/bongo.pl/conf/iwantsvnpath

W tym przypadku oznacza to, że drugi wpis w ruletheworldwithpowerofsvn odnosić się będzie do konkretnego repozytorium:

repo:/home/<login>/www/svn/repo::witaj:/home/<login>/www/svn/svnaccess:/home/<login>/www/svn/authz 

Tu adres dostępowy do repozytorium o nazwie repo będzie następujący: http://bongo.pl/repo


Odświeżenie konfiguracji

Ostatnim krokiem jest poinformowanie systemu Szatana, że zmieniliśmy ustawienia. W tym celu wydajemy polecenie, czekamy maksymalnie 30 minut i sprawdzamy efekty.

satan vhost reload bongo.pl bongo.pl


Repozytorium przez ssh

To jest najprostsza i najszybsza opcja, jednak czasami kłopotliwa przy konfiguracji klientów SVN. Tak jak w poprzednim przypadku tworzymy katalogi oraz repozytorium.

$ mkdir ~/svn
$ svnadmin create ~/svn 

Teraz wystarczy "dostać się" do naszego nowego repozytorium. Można na przykład skorzystać z tego poradnika i podać taki adres repozytorium:

svn+ssh://k.rootnode.net/pelna/sciezka/do/katalogu/svn'a 
przykład
svn+ssh://k.rootnode.net/home/bongo/svn


Dostęp do SVN z Windowsa

Dostęp do SVN z Windowsa

  • Potrzebne oprogramowanie:

TortoiseSVN PuTTYgen Pageant

  • Instalujemy na komputerze klienckim TortoiseSVN i ściągamy pozostałe dwa programy.
  • Za pomocą PuTTYgen generujemy klucz którym będziemy się posługiwać. Najlepiej zachować go bez hasła (ułatwi to korzystanie z repo)
  • Zapisujemy klucz prywatny na dysku.
  • Klucz publiczny wklejamy do pliku ~/.ssh/authorized_keys na serwerze
  • Modyfikujemy plik ~/.ssh/authorized_keys w taki sposób by przed kluczem (który wkleiliśmy wcześniej) znajdował się następujący zapis:
command="/usr/bin/svnserve -t --tunnel-user nazwa_użytkownika" 

Zamiast nazwa_użytkownika wstawiamy nazwę użytkownika zdefiniowaną przez nas w pliku w katalogu /conf/passwd naszego repozytorium.

  • uruchamiamy Pageant
  • Dodajemy do niego nasz zapisany klucz prywatny.
  • Do repozytorium łączymy się za pomocą adresu
svn+ssh://<nazwa_użytkownika>@k.rootnode.net/pelna/sciezka/do/katalogu/svn'a 
przykład
svn+ssh://bongo@k.rootnode.net/home/svn/repozytorium


Dostęp do SVN'a z eclipsa

  • Do eclipsa doinstalowujemy wtyczkę do SVN'u.
  • W przypadku dostępu poprzez svn+ssh zmieniamy SVN Interface na SVNKit (Window->Preferences->Team->SVN)
  • W widoku SVN Repository dodajemy nasze repozytorium np.: "svn+ssh://k.rootnode.net/home/<login>/svn"



Dodatkowa konfiguracja

W katalogu konfiguracyjnym repozytorium (w naszym przypadku to ~/www/svn/repo/conf) znajdziemy plik svnserve.conf, w którym możemy ustawić więcej opcji.


Maile z SVN

W katalogu hook w repozytorium (w naszym przypadku to ~/www/svn/repo/hook) znajdziemy plik post-commit.tmpl, w którym możemy np. ustawić email na jaki ma być wysłany mail z informacją o commicie. Należy zmienić nazwę pliku i pozwolić na jego wykonywanie:

mv post-commit.tmpl post-commit
chmod +x post-commit

Następnie w pliku należy zmienić commit-watchers@example.org na swój adres email, oraz dopisać: --from nazwa_uzytkownika@korn.rootnode.net. Czyli ostatecznie np.:

przykład
/usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" bongo@bongo.pl --from bongo@korn.rootnode.net




Git

Git – rozproszony system kontroli wersji stworzony przez Linus Torvalds jako narzędzie wspomagające rozwój jądra Linux. Głównymi zaletami jest szybkość, efektywność i użyteczność niezależna od wielkości projektu.

Repozytorium lokalne

Metoda ta zakłada, że posiadamy już lokalne repozytorium z kodem.

  • Tworzymy kopie aktualnego repozytorium (lokalnie na desktopie)
$ cd
$ git clone --bare <sciezka do projektu> <nazwa projektu>.git
$ tar c <nazwa projektu>.git | gzip -9 > <nazwa projektu>.git.tar.gz
  • Kopiujemy źródła na serwer shellowy/główny do katalogu domowego.
scp <nazwa projektu>.git.tar.gz <login>@<serwer>.rootnode.net:~/ 
przykład
scp mojProjekt.git.tar.gz bongo@k.rootnode.net:~/
  • Rozpakowujemy wgrane pliki na serwerze shellowym
gunzip -c <nazwa projektu>.git.tar.gz | tar xvf - 
przykład
gunzip -c mojProjekt.git.tar.gz | tar xvf -
  • Klonujemy repozytorium na komputer lokalny
git clone <login>@<serwer>.rootnode.net:~/<nazwa projektu>.git <nawa lokalnego katalogu> 
przykład
git clone bongo@k.rootnode.net:~/mojProjekt.git mojNowyProjekt


Tworzenie repozytorium zdalnego

Przykłady poleceń można zobaczyć w punkcie wyżej - GIT - Repozytorium lokalne

  • Tworzymy repozytorium
$ mkdir <nazwa projektu>.git && cd <nazwa projektu>
$ git init-db
  • Klonujemy repozytorium na komputer lokalny
git clone <login>@stallman.rootnode.net:~/<nazwa projektu>.git <nawa lokalnego katalogu> 


Praca z repozytorium

Git cechuje się rozproszonym podejściem do problemu kontroli wersji, użytkownik posiada własne, lokalne repozytorium, do którego commituje zmiany. Następnie lokalne repozytorium jest synchronizowane ze zdalnym. Poniższa lista przedstawia podstawowe działa z którymi spotka się każdy user gita.

1. Modyfikujemy pliki projektu i dorzucamy je do commita

 git add <plik projektu> 

2. Commitujemy własne zmiany do lokalnego repozytorium

 git commit 

3. Dociągamy zmiany ze zdalnego repozytorium, poprawiamy swój kod, commitujemy zmiany

 git pull 

4. Wrzucamy nasz kod do zdalnego repozytorium

 git push 

Notka: git <push|pull> będzie operować na repozytorium z którego zrobiliśmy clone, jeśli zdalne repozytorium bylo na stallmanie, stad synchronizacja będzie następowała z ta lokacja.

WebDAV

Krok pierwszy

Aby skonfigurować WebDAV w katalog /conf naszego vhostu musimy utworzyć plik callthechtulhuwithdarkforceofdav.

przykład
$ cd ~/www/bongo.pl/conf
$ touch callthechtulhuwithdarkforceofdav

Krok drugi

Teraz otwórz plik dowolnym edytorem tekstu i uzupełnij go. Plik musi składać się z czterech członów rozdzielonych dwukropkiem. Przykładowy wpis:

davloc:/home/bongo/www/dav:Witaj:/home/bongo/www/.webdavpass
  • davloc: to jest lokalizacja którą podajemy na końcu urla w kliencie WebDAV - na przykład
http://bongo.pl/davloc
  • Drugi człon, to katalog który będzie dostępny przez WebDAV. Pamiętaj, że musi gdziekolwiek on być w katalogu /home/user/www. Twój katalog domowy nie jest widziany przez serwer www. - w naszym wypadku jest to /home/bongo/www/dav
  • Trzeci człon to nazw jaka nam się pojawi przy próbie uwierzytelnienie. Witaj
  • Czwarty człon to plik zawierający użytkowników i ich hasła, którzy będą mogli korzystać z WebDAV. W naszym wypadku jest to plik /home/bongo/www/.webdavpass

Plik należy stworzyć poleceniem htpasswd. passwordFile to nazwa pliku, user to nazwa dodawanego użytkownika.

htpasswd -c /home/user/www/passwordFile user
przykład
htpasswd -c /home/bongo/www/.webdavpass bongo

Krok trzeci

Teraz pozostaje nam tylko czekać na odświeżenie konfiguracji apache'a. Jeśli nie lubisz czekać i zależy Ci na czasie poinformuj apache'a, że coś się zmieniło w Twoich vhostach wydając polecenie

satan vhost reload bongo.pl bongo.pl

Problemy

Jeśli podczas próby zapisu plików do swojej stworzonej lokalizacji w pliku logs/error.log pojawiają się wpisy

[error] [client IP] The locks could not be queried for verification against a possible "If:" header.  [500, #0]
[error] [client IP] Could not open the lock database.  [500, #400]
[error] [client IP] (2)No such file or directory: Could not open property database.  [500, #1]

Może to oznaczać, że brakuje Ci pliku .davlockdb w katalogu conf - tym samym katalogu, w którym umieściłeś plik callthechtulhuwithdarkforceofdav. Po prostu stwórz plik i nadaj mu odpowiednie uprawnienia.

cd ~/www/vhost/conf
touch .davlockdb
chmod 755 .davlockdb

Przewodnik po Rootnode

Nasze strony są oparte o system wiki, co znaczy, że każdy użytkownik może edytować dowolną stronę.
Treści tutaj zawarte mogą być nieaktualne i niewłaściwe. Nie bierzemy odpowiedzialności za ewentualne szkody.

Zobacz ostatnie zmiany.

Pierwsze kroki z Rootnode

Bazy danych


Poczta

Domena i system DNS

Vhost, strona www

Nieuporządkowane

© ITspec Wszelkie prawa zastrzeżone. | Wiki | Status | Support | Planeta | Fortunki | Kontakt
Szukasz oferty indywidualnej lub specjalistów IT? Zobacz naszą stronę domową i skontaktuj się z nami.
Personal tools