In letzter Zeit bin ich dabei meine Projekte von Subversion auf Git umzuziehen. Nicht überall nehme ich dabei die Historie von Subversion mit. Diese Projekte halte ich quasi als Archiv weiterhin im Subversion vor. Um nun zu verhindern das ein Benutzer doch noch eine Änderung vornimmt muss das Repository auf reinen Lesezugriff beschränkt werden.
Wie so oft gibt es hier verschiedene Möglichkeiten. Meine Lieblingsmethode ist die Verwendung von Hooks.
Hierzu muss nur das Hook Script pre-commit editiert werden.
$ nano /pfad/zum/repository/hooks/pre-commit
Der Befehlt exit bricht dann den Commit mit einem „Fehler“ ab.
#!/bin/sh echo "Keine Aenderungen moeglich! Bitte ab sofort Git verwenden!" exit 1
Eine andere Variante ist die Verwendung der authz Datei. Hier genügt der folgende Eintrag um allen Benutzern nur einen Lesezugriff zu gewähren.
[repositoryname:/] * = r