Gitolite: Porovnání verzí
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ář).