Git auf einer Synology
Nachdem Drupal auf git umgestiegen ist, haben wir uns auch entschlossen TortoiseSVN zu verabschieden. Durch die viele Projekte und Unterrichtseinheiten sammelt sich viel Quelltext, welcher in verschiedene Versionen im Umlauf ist. Eine öffentliche Ablage und eine Arbeitsversion sind dennoch nicht auf diesen Fall beschränkt.
In diesem Artikel installieren wir git auf einer Synology DS508+ als Repository Serverdienst und richten uns eine entsprechende Arbeitskopie aus einer Windowsumgebung ein. Learning by doing.
Git installieren
root@DiskStation> ipkg list|grep git ... root@DiskStation> ipkg install git
Ordnung sollte sein ...
Ich hab bei einer DS508+ ein Volume /volume1
Wir brauchen ein Work Tree und ein Repository.
Repository: /volume1/GitRoot Arbeitskopie: \\DiskStation\data\GitWorkTree oder C:\GitWorkTree
Das Repository wird vom System Administrator gepflegt, die Work Trees von den Benutzern durch
clone
Repository Hauptordner erstellen
root@DiskStation> mkdir /volume1/GitRoot
Ich hab mich für root entschieden um den Sicherheitsaspekt des Haupt Repository zu verdeutlichen.
Projekt Repository erstellen
root@DiskStation> mkdir -p /volume1/GitRoot/test root@DiskStation> cd /volume1/GitRoot/test root@DiskStation> git init --bare --shared=...
Zu Beachten ist dabei die Option --shared.
Die Berechtigungen setzen für Work Trees Benutzer.
DiskStation> chmod -R g+ws * DiskStation> chgrp -R users * DiskStation> git config core.sharedRepository true
Projekt Arbeitszweig (Work Tree) erstellen
Die aktuellen Projekte werden auch in einem vorbestimmten Ordner abgelegt.
Dieser kann sowohl lokal als auch auf der DiskStation abgespeichert werden, solange bei Bedarf Zugriff besteht.
Um Git auf Windows zu Integrieren, setzen wir dieselbe Lösung wie github ein. Die Git Bash wird auf dem Ordner GitWorkTree ausgeführt.
git clone ssh://DiskStation/volume1/GitRoot/test
Note:
sh: git-upload-pack: not found bedeutet das /opt/bin im $PATH auf der DiskStation fehlt. ln -s /opt/bin/git-upload-pack /usr/bin/git-upload-pack (also receive pack)
In dieser Arbeitskopie können wir nun mit unserem eigenem git Server kommunizieren.
Fazit
Glücklich! Wir migrieren nun alle SVN Projekte und melden uns mal wieder.