Subversion - Kann ich auf der Serverseite Auto-Requisiten einstellen?

7

Ich unterhalte einen SVN-Server und muss auf Benutzer viele Adobe Illustrator-Dateien (dh *.ai) festschreiben . Ich kann die Auto-Requisiten in ihrer Konfiguration verwenden, um sie als Binärdatei festzulegen, damit sie nicht in den Mailinglisten-Commits enthalten sind. Ich möchte dies jedoch so einfach wie möglich gestalten. Gibt es etwas, das ich in der SVN-Serverkonfiguration festlegen kann, damit es (dh der Server) automatisch das Richtige einstellt svn:mime-type?

Rory
quelle

Antworten:

6

Es ist nicht möglich. Es gibt eine langjährige Funktionsanforderung zum Senden von Konfigurationen an den Client. Es ist derzeit nicht vor 2.0 oder später fällig.

Das nächste, was Sie kommen können, ist die Verwendung von Haken. Entweder mit einem Pre-Commit, um zu verhindern, dass falsch konfigurierte Clients die falschen Daten senden. Oder ein Post-Commit, um falsche Daten nachzurüsten.

Beides ist nicht großartig und ich glaube, letzteres wird sogar davon abgeraten.

Dan Carley
quelle
3
Dies ist mit dem SVN 1.8-Client möglich.
Bahrep
client! = serverseitig (wie in Frage angegeben)
Jesse
@Jesse Die vom Repository vorgegebene Konfiguration ist eine clientseitige Funktion. Auto-Requisiten werden jedoch auf der Server- / Repository-Seite festgelegt und helfen dabei, die Konfiguration an Clients weiterzuleiten. Diese Antwort ist nicht mehr aktuell und falsch.
Bahrep
@bahrep Das OP erwähnt Auto-Requisiten und ist sich der Auto-Requisiten-Funktionalität bewusst, die clientseitig pro Repository festgelegt, konfiguriert und geändert wird . Wenn Sie beispielsweise Hunderte oder Tausende von SVN-Repositorys verwalten, muss diese Konfiguration pro Repository vorgenommen werden und ist nicht "einfach" (gemäß dem, wonach das OP gesucht hat). Diese Konfiguration pro Repository müsste auch dem Eigentümer jedes Repositorys erklärt werden, und er könnte die Konfiguration zurücksetzen, wenn Sie dies nicht mit Hooks verhindern. Dans Antwort ist angesichts der ursprünglichen Frage richtig.
Jesse
@Jesse Es gibt clientseitige Auto-Requisiten, svn:auto-propsdie server- oder repository-seitig sind. In beiden Fällen muss jemand den Eigentümer erklären oder die Dokumentation lesen, um eine server- oder repository-seitige Funktion zu implementieren.
Bahrep
6

Apache Subversion 1.8 hat die Funktion " Repository Dictated Configuration" eingeführt, für die ein SVN 1.8-Client erforderlich ist . (1.8 Server ist also nicht erforderlich).

Mit Subversion 1.8 können Sie Auto-Requisitenmuster in einem Repository mithilfe der neuen svn:auto-propsgeerbten Subversion- Eigenschaft konfigurieren .

Wenn Sie beispielsweise den svn:auto-propsWert auf die *.bmp = svn:mime-type=image/bmpEigenschaft im Stammverzeichnis Ihres Repositorys (oder auf den Repository-Pfad, der einen Stammverzeichnis eines Projekts darstellt) setzen, wird in jeder neu hinzugefügten Bitmap-Datei der MIME-Typ automatisch angewendet.

Sie können mehrzeilige Werte in Subversion-Eigenschaften speichern, sodass Sie das folgende (recht standardmäßige) SVN hinzufügen können: Needs-Lock und MIME-Muster zu svn:auto-props:

*.bmp = svn:mime-type=image/bmp;svn:needs-lock=*
*.gif = svn:mime-type=image/gif;svn:needs-lock=*
*.ico = svn:mime-type=image/x-icon;svn:needs-lock=*
*.jpeg = svn:mime-type=image/jpeg;svn:needs-lock=*
*.jpg = svn:mime-type=image/jpeg;svn:needs-lock=*
*.png = svn:mime-type=image/png;svn:needs-lock=*
*.tif = svn:mime-type=image/tiff;svn:needs-lock=*
*.tiff = svn:mime-type=image/tiff;svn:needs-lock=*    
*.doc = svn:mime-type=application/msword;svn:needs-lock=*
*.jar = svn:mime-type=application/octet-stream;svn:needs-lock=*
*.odc = svn:mime-type=application/vnd.oasis.opendocument.chart;svn:needs-lock=*
*.odf = svn:mime-type=application/vnd.oasis.opendocument.formula;svn:needs-lock=*
*.odg = svn:mime-type=application/vnd.oasis.opendocument.graphics;svn:needs-lock=*
*.odi = svn:mime-type=application/vnd.oasis.opendocument.image;svn:needs-lock=*
*.odp = svn:mime-type=application/vnd.oasis.opendocument.presentation;svn:needs-lock=*
*.ods = svn:mime-type=application/vnd.oasis.opendocument.spreadsheet;svn:needs-lock=*
*.odt = svn:mime-type=application/vnd.oasis.opendocument.text;svn:needs-lock=*
*.pdf = svn:mime-type=application/pdf;svn:needs-lock=*
*.ppt = svn:mime-type=application/vnd.ms-powerpoint;svn:needs-lock=*
*.ser = svn:mime-type=application/octet-stream;svn:needs-lock=*
*.swf = svn:mime-type=application/x-shockwave-flash;svn:needs-lock=*
*.vsd = svn:mime-type=application/x-visio;svn:needs-lock=*
*.xls = svn:mime-type=application/vnd.ms-excel;svn:needs-lock=*
*.zip = svn:mime-type=application/zip;svn:needs-lock=*
bahrep
quelle
4

Es gibt zwar keine gute Antwort darauf, aber Sie können svn_apply_autoprops.py verwenden, das ich geschrieben habe, um Ihre Standard-Auto-Requisiten auf eine Arbeitskopie anzuwenden, um alle Dateien dort in Übereinstimmung zu bringen.

Blair Zajac
quelle
Der Link zu svn_apply_autoprops.py scheint unterbrochen zu sein. Wenn ich nach dem Dateinamen suche, bekomme ich diese Kopie in Apache, die wahrscheinlich dieselbe Datei ist.
Nikolaos Georgiou
Ja, das ist der neue Standort. Der Subversion-Quellcode wurde von svn.collab.net nach svn.apache.org verschoben, als wir der Apache Software Foundation beitraten.
Blair Zajac
Denken Sie nicht, dass das Skript nach der Implementierung von Repository Dictated Configuration
aktuell ist