Gitolite: Porovnání verzí

Z GeoWikiCZ
mBez shrnutí editace
m (toc)
 
(Není zobrazeno 8 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
'''[http://github.com/sitaramc/gitolite Gitolite]''' je nástupce [[Gitosis]] pro správu [[Git]] repozitářů. Viz [http://progit.org/book/ch4-8.html kapitola] "Gitolite" z knihy ''Pro Git''.
'''[http://github.com/sitaramc/gitolite Gitolite]''' je nástupce [[Gitosis]] pro správu [[Git]] repozitářů. Viz [http://progit.org/book/ch4-8.html kapitola] "Gitolite" z knihy ''Pro Git''.
 
__TOC__
Instalace pro Debian GNU/Linux
Instalace pro Debian GNU/Linux


Řádek 26: Řádek 26:
                 RW+    =  @all
                 RW+    =  @all
</pre>
</pre>
== Založení nového repozitáře ==
Pro založení nového repozitáře stačí příslušný zapsat záznam do souboru <tt>gitolite.conf</tt> a zadat příkazy <tt>commit</tt> a <tt>push</tt>.
Ve vytvořeném repozitáři po naklonování musíme po prvních změnách uložit běžnou větev z pracovní kopie do vzdáleného repozitáře příkazem
git push origin HEAD
viz též [[Git#Uložení_běžné_větve_do_vzdáleného_repozitáře|uložení běžné_větve do vzdáleného repozitáře]].
=== Příklad ===
Založení pracovního vývojové repozitáře <tt>gama-devel</tt>
<pre>
1) v repozitáři gitolite-admin-geo102 upraven conf/gitolite.conf
diff --git a/conf/gitolite.conf b/conf/gitolite.conf
index 6edacc8..07007f0 100644
--- a/conf/gitolite.conf
+++ b/conf/gitolite.conf
@@ -25,6 +25,10 @@
        repo    qgama
                RW+    =  @cepek novak-jiri-cohen_hp
+        repo    gama-devel
+                RW+    =  @cepek petras-vaclav
+                R      =  @gyori
+
        repo    bc-kratochvilova
                RW+    =  kratochvilova-anna @landa
2) Naklonování prázdneho repozitáře gama-devel
git clone git@geo102.fsv.cvut.cz:gama-devel.git
Cloning into gama-devel...
warning: You appear to have cloned an empty repository.
3) Přidáme odkaz na Read-Only vzdálený repozitář
cd gama-devel
git remote add ro-gnu-gama git://git.sv.gnu.org/gama.git
git pull ro-gnu-gama master
git push origin master
4) První commit (založena pracovní verze 1.11a)
emacs configure.ac &
git add  configure.ac
git commit -m "zalozena pracovni verze 1.11a"
git push
5) porovnání s gnu serverem
git fetch ro-gnu-gama
git diff ro-gnu-gama/master master
diff --git a/configure.ac b/configure.ac
index 653f4e6..4fdf4f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
#
AC_PREREQ(2.65)
-AC_INIT([gama], [1.11], [bug-gama@gnu.org])
+AC_INIT([gama], [1.11a], [bug-gama@gnu.org])
AC_CONFIG_SRCDIR([lib/gnu_gama/version.cpp])
AC_CONFIG_HEADER([config.h])
AC_CONFIG_AUX_DIR([scripts/config.aux])
</pre>
Tento diff lze následně použít v příkazu <tt>git apply ''dif-file''</tt>, musíme ale dát pozor a dodržet pořadí argumentů v příkazu <tt>git diff</tt> výše (nejprve vzdálený a pak lokální repozitář).
== Externí odkazy ==
* [http://www.root.cz/clanky/gitolite-poridte-si-vlastni-github/ Gitolite: pořiďte si vlastní GitHub]


{{GNU GPL}}
{{GNU GPL}}

Aktuální verze z 2. 7. 2012, 16:51

Gitolite je nástupce Gitosis pro správu Git repozitářů. Viz kapitola "Gitolite" z knihy Pro Git.

Instalace pro Debian GNU/Linux

apt-get install gitolite

Nejprve vytvoříme repozitář pro administraci gitolite-admin a to pomocí příkazu gl-setup. Např.

gl-setup /tmp/landa.pub

V domovském adresáři uživatele se vytvoří soubor projects.list (seznam repozitářů pro Gitweb) a adresář repositories, který obsahuje dva repozitáře - gitolite-admin.git a testing.git. Zároveň se zadaný veřejný klíč přidá do souboru .ssh/authorized_keys.

Nyní můžeme repozitář naklonovat na lokálním počítači.

git clone git@geo101.fsv.cvut.cz:gitolite-admin.git

Příklad konfiguračního souboru

cat gitolite.conf 
        repo    gitolite-admin
                RW+     =   landa

        repo    testing
                RW+     =   @all

Založení nového repozitáře

Pro založení nového repozitáře stačí příslušný zapsat záznam do souboru gitolite.conf a zadat příkazy commit a push.

Ve vytvořeném repozitáři po naklonování musíme po prvních změnách uložit běžnou větev z pracovní kopie do vzdáleného repozitáře příkazem

git push origin HEAD

viz též uložení běžné_větve do vzdáleného repozitáře.

Příklad

Založení pracovního vývojové repozitáře gama-devel

1) v repozitáři gitolite-admin-geo102 upraven conf/gitolite.conf


diff --git a/conf/gitolite.conf b/conf/gitolite.conf
index 6edacc8..07007f0 100644
--- a/conf/gitolite.conf
+++ b/conf/gitolite.conf
@@ -25,6 +25,10 @@
         repo    qgama
                 RW+     =   @cepek novak-jiri-cohen_hp
 
+        repo    gama-devel
+                RW+     =   @cepek petras-vaclav
+                R       =   @gyori
+
         repo    bc-kratochvilova
                 RW+     =   kratochvilova-anna @landa

2) Naklonování prázdneho repozitáře gama-devel

git clone git@geo102.fsv.cvut.cz:gama-devel.git
Cloning into gama-devel...
warning: You appear to have cloned an empty repository.

3) Přidáme odkaz na Read-Only vzdálený repozitář

cd gama-devel
git remote add ro-gnu-gama git://git.sv.gnu.org/gama.git
git pull ro-gnu-gama master
git push origin master

4) První commit (založena pracovní verze 1.11a)

emacs configure.ac &
git add  configure.ac
git commit -m "zalozena pracovni verze 1.11a"
git push

5) porovnání s gnu serverem

git fetch ro-gnu-gama
git diff ro-gnu-gama/master master

diff --git a/configure.ac b/configure.ac
index 653f4e6..4fdf4f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 #
 AC_PREREQ(2.65)
-AC_INIT([gama], [1.11], [bug-gama@gnu.org])
+AC_INIT([gama], [1.11a], [bug-gama@gnu.org])
 AC_CONFIG_SRCDIR([lib/gnu_gama/version.cpp])
 AC_CONFIG_HEADER([config.h])
 AC_CONFIG_AUX_DIR([scripts/config.aux])

Tento diff lze následně použít v příkazu git apply dif-file, musíme ale dát pozor a dodržet pořadí argumentů v příkazu git diff výše (nejprve vzdálený a pak lokální repozitář).

Externí odkazy