2008-09-07 1 views
7

eingecheckte Datei zu validieren ruft ich frage mich, ob jemand hier einige Erfahrung hatte diese Art von Skript zu schreiben und wenn sie mir einige Hinweise geben könnten.Wie implementiere ich einen Hook-Skript in SVN pre-commit, die dos2unix

Ich möchte diese script ändern, um zu überprüfen, dass die Eincheck-Datei keine Carriage Return in der EOL-Formatierung hat. Das EOL-Format ist CR LF in Windows und LF in Unix. Wenn ein Benutzer den Code im Windows-Format eincheckt. Es kompiliert nicht mehr in Unix. Ich weiß, dass dies auf der Client-Seite getan werden kann, aber ich muss diese Überprüfung auf der Serverseite durchführen lassen. Um dies zu erreichen, muss ich Folgendes tun:

1) Stellen Sie sicher, dass die Datei, die ich überprüfe, keine binäre ist, weiß ich nicht, wie das mit Svnlook zu tun, sollte ich den Mime überprüfen: Typ der Datei? Die Red Book zeigt dies nicht deutlich an oder ich muss es nicht gesehen haben.

2) Ich möchte den dos2unix Befehl ausführen zu bestätigen, dass die Datei die richtige EOL-Format hat. Ich würde die Ausgabe des dos2unix-Befehls mit der ursprünglichen Datei vergleichen. Wenn es einen Unterschied zwischen beiden gibt, gebe ich dem Client eine Fehlermeldung und annulliere den Check-in.

Ich möchte Ihre Kommentare/Feedback zu diesem Ansatz.

Antwort

4

Ich glaube, Sie einen Haken Skript in diesem Fall verpflichten vermeiden kann mithilfe der svn:eol-style Eigenschaft wie im SVNBook beschrieben:

Auf diese Weise SVN kann sich über Ihre Zeilenenden für Sie sorgen.

Viel Glück!

+0

Dank Stephen setzte ich die svn: eol-style-Eigenschaft auf alle meine Quelldateien statt pre-commit der Verwendung von Haken –

+0

Was Sie es festgelegt haben? 'nativ' oder' LF'? Was ist die Standardeinstellung, wenn svn: eol-style nicht festgelegt wurde? – EoghanM

1

Was genau versuchen Sie zu tun?

Natürlich gibt es zahlreiche Orte, um SVN pre-commit Haken lernen (z here, here, und in den Red Book), aber es hängt davon ab, was Sie versuchen zu tun und was auf Ihrem System zur Verfügung steht.

Können Sie genauer sein?

Verwandte Themen