====== Git-Projektarchiv zu Redmine hinzufügen ====== Redmine bietet die Möglichkeit, ein pro Projekt ein Projektarchiv eines Versionskontrollsystems hinzuzufügen. Unterstützt werden derzeit folgende Versionskontrollsysteme: * Subversion * Darcs * Mercurial * CVS * Bazaar * Git * Filesystem Diese Dokumentation beschreibt die Integration eines externen, auf einem anderen Server liegendes, Git-Projektarchives. Voraussetzung ist, dass der SSH-Key zwischen den Servern für eine SSH-Kommunikation ohne Passwort und Passphrase ausgetauscht wurde. ===== Git-Projektarchiv erstmals auf dem Raspberry Pi spiegeln ===== Hierzu wechseln wir in das Verzeichnis "/var/lib/redmine" und legen ein Verzeichnis "repos" an. In diesem Verzeichnis wird anschließend das Git-Respository gespiegelt: $ cd /var/lib/redmine $ mkdir repos $ git clone --mirror ssh://benutzername@domain.de/www/htdocs/pfad/zum/git/projektarchiv ===== Git-Projektarchiv in Redmine hinzufügen ===== Öffnen Sie das entsprechende Projekt und wählen Sie dann "Konfiguration" ==> "Projektarchive" ==> "Neues Repository". Geben Sie hier eine eindeutige Kennung sowie den "Pfad zum Repository" ein (z. B. /var/lib/redmine/repos/[Projektname].git) Aktivieren Sie die Option "Bericht des letzten Commits für Dateien und Verzeichnisse" und verlassen Sie den Dialog mit der Schaltfläche "Speichern". ===== ein Git-Projektarchiv regelmäßig automatisch aktualisieren ===== Damit das Git-Projektarchiv regelmäßig automatisch aktualisiert werden kann muss zunächst ein SSH-Key-Paar bestehend aus einem Private-Key und einem Public-Key erstellt werden. Der Public-Key wird dann auf den Git-Server übertragen, damit der Rasperry sich jederzeit automatisch mit dem Private-Key an dem Server anmelden kann, um selbständig das Projektarchiv zu aktualisieren. [[:ssh_copy_id|Hier wird erklärt, wie ein SSH-Key-Paar generieren und der Public-Key zum Git-Server übertragen wird]]. Jetzt können wir einen Cronjob erstellen, der z. B. alle 15 Minuten ein Remote-Update vom Git-Repository durchführt. Hierfür ergänzen wird die bereits bei der Linux-Installation automatisch erstellte "crontab"-Datei: $ sudo crontab -e */5 * * * * cd /var/lib/redmine/repos/Projektarchiv.git && git remote update Tasten [Strg]+[X] Taste [J] Taste [ENTER] ===== mehrere Git-Projektarchive regelmäßig automatisch aktualisieren ===== Wenn Sie mehr als ein Projektarchiv aktualisieren wollen und diese unterschiedliche Benutzernamen oder sogar auf verschiedenen Servern verteilt sind sollte für jede Serververbindung ein eigener SSH-Key erstellt werden. Diese können dann in einer "config"-Datei im ".ssh"-Verzeichnis für den Cronjob bekannt gemacht werden: nano ~/.ssh/config host [URL vom Server 1] HostName [Server-Adresse 1] IdentityFile ~/.ssh/id_rsa_[schluessel_Name 1] User [Benutzername 1] host [URL vom Server 2] HostName [Server-Adresse 2] IdentityFile ~/.ssh/id_rsa_[schluessel_Name 2] User [Benutzername 2]