GitAdmin

Aus easyVDR-Wiki
Zur Navigation springen Zur Suche springen
Git-logo.png

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>

Siehe auch