1 Git über Apache
Auch wenn Git ein "Distributed SCM" ist, hat man fast immer die Not, das man einen zentralen Verteilungsserver braucht. Die einzelnen Clients können dann zwar distributed arbeiten, zum verteilen braucht man dann einen zentralisierten Server.
Es gibt Gitorous, ein sehr große Lösung. Es sind enorm viele bloody-edge Pakete, wie man hier sehen kann, zudem eine enorme Anzahl an Paketet ansich.
WebDAV ist hier eine simplere, robustere und flexiblere Lösung - jedoch ohne Frontend. Genau diese stelle ich hier vor.
1.1 DAV installieren
Erst aktivieren wir erstmal die DAV Module
a2enmod dav
a2enmod dav_fs
1.2 VHOST konfigurieren
vim /etc/apaches/sites-available/git.conf
Hier schreiben wir hinein
<VirtualHost *:80>
ServerName impressive-media.de
ServerAdmin webmaster@localhost<Directory />
Order allow,deny
Options -Indexes
</Directory>
DocumentRoot /home/git/repos
# get the git repo configuration
Include /etc/apache2/git-enabled/
ErrorLog /var/log/apache/githome.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/githome.log combined
</VirtualHost>
1.3 Git für DAV konfigurieren
vim /etc/apache2/git-available/repo1.conf
Dort schreiben wir folgendes hinein
<Location /repo1>
Order deny,allow
Options +Indexes
DAV on
AuthType Basic
AuthName "Git"
AuthUserFile /home/git/passwords/.repo1
Require valid-user
ErrorLog /var/log/git/repo1err.log
</Location>
Wenn wir also zusätzliche Git-Repos hinzufügen wollen, erstellen wir also eine /etc/apache2/git-available/repo2.conf Datei mit dem entsprechenden Inhalt.
Wenn wir nun also ein Git-Repo aktivieren wollen, müssen wir folgenden Symlink anlegen (ähnlich wie bei sites-availsable bzw sites-enabled).
ln -s /etc/apache2/git-available/repo1 /etc/apache2/git-enabled/
1.4 SSL VHOST
Nun ändern wir das ganze ab und führen die Kommunikation über SSL ein
<VirtualHost *:443>
ServerName impressive-media.de
ServerAdmin webmaster@localhostSSLEngine on
SSLOptions +StdEnvVars
SSLCertificateKeyFile /etc/ssl-startssl/apache/ssl.key
SSLCertificateFile /etc/ssl-startssl/apache/server.crt
SSLCertificateChainFile /etc/ssl-startssl/apache/sub.class2.server.ca.pem
SSLCACertificateFile /etc/ssl-startssl/apache/ca.pem
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0<Directory />
Order allow,deny
Options -Indexes
</Directory>DocumentRoot /home/git/repos
# get the git repo configuration
Include /etc/apache2/git-enabled/
ErrorLog /var/log/apache2/githome.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/githome.log combined
</VirtualHost>
2 Git Reporsitories verwalten
2.1 SVN clonen - Git bare
git svn clone http://euersvnserver.de/repo/verzeichnis /home/git/repos/repo1_tmp
git --bare clone /home/git/repos/repo1_tmp /home/git/repos/repo1
rm -fr /home/git/repos/repo1_tmp
cd /home/git/repos/repo1_tmp
git update-server-info
2.2 Lokalen Checkout ( clone )
git clone https://Benutzer@impressive-media.de/repo1 repo1Lokal





Kommentar hinzufügen