GitAdmin
Inhaltsverzeichnis
Grundsätzliches
Ziel dieses How-to ist die Einrichtung GIT Infrastrucktur für Easyvdr.
Mit diesem How-To sind die Pfade so gesetzt, dass die identisch sind für alle tools.
git://www.easy-vdr.de/git/%reponame% ssh://www.easy-vdr.de/git/%reponame% http://www.easy-vdr.de/git/%reponame%
Wobei http://www.easy-vdr.de/git/%reponame% ist aber nicht für git clone
verwendbar, sondern nur für browsen im Repository. Wegen Fehleranfälligkeit beim uploaden über http: wird das GIT Repository nicht über http bereitgestellt.
GIT Installation
apt-get install git-core git-daemon-run gitweb git-doc
Erstelle git Verzeichnis
mkdir /git
Erstelle Gruppe "gitadmin"
addgroup gitadmin
Berechtige gitadmin
chgrp -R gitadmin /git chmod g+w -R /git
Und wichtig: Developer in die Gruppe gitadmin aufnehmen!!!
GIT-DAEMON
edit /etc/sv/git-daemon/run
statt
exec git-daemon --base-path=/var/cache --verbose /var/cache/git
dies
exec git-daemon --verbose /share/git
und schließlich das Repository für git-daemon exportieren.
cd /share/git/%repo%/.git touch git-daemon-export-ok
GIT-WEB
ln -s /git/%repo%/.git /var/cache/git/foo.git
und schon ist unter
http://%servername%/cgi-bin/gitweb.cgi alle GIT Repository verfügbar.
Cool wäre statt http://www.easy-vdr.de/cgi-bin/gitweb.cgi ein kurzer Namen http://www.easy-vdr.de/git zu haben
Für Apache sollte dann die Zeile in die /etc/apache2/sites-available/default
eingetragen werden.
ScriptAlias /git /usr/lib/cgi-bin/gitweb.cgi
Repositories einrichten
#!/bin/bash EDITOR=mcedit if [ "$1" == "" ] ; then echo "Project name" exit 1 fi gitrepo=$1 mkdir -p /git/$gitrepo cd /git/$gitrepo/ chgrp -R gitadmin /git chmod g+w -R /git git init echo "First initial commit" > .git/changelog git add * git commit -a -m "First initial commit" $EDITOR .git/description echo -e "[gitweb]\n\towner = \"fill me\"" >> .git/config $EDITOR config touch .git/git-daemon-export-ok ln -s /git/$gitrepo/.git /var/cache/git/$gitrepo.git
Nutzen:
./erstelleGitrepo.sh test1
User zum Pushen hinzufügen
usermod -a -G gitadmin <username>