Frage

Jeff Atwood schrieb über Leerzeichen und schlug Haken Erstellen begehen, die Hinter entfernt Leerzeichen an den Enden der Linien und Dateien.

Ich habe gesucht, aber ich habe nicht ein klares Beispiel für die Verwendung eines pre-commit Haken zu modifizieren Dateien wie diese gefunden. Haben Sie ein Skript, das Sie teilen möchten?

War es hilfreich?

Lösung

Ich bin mir ziemlich sicher, dass Pre- commit Haken nicht verwendet werden kann, um die Transaktion im Gang zu ändern. Es kann nur erlauben oder verweigern die Aktion begehen. In Ihrem Fall würden wollen Sie die Dateien zu untersuchen, um zu sehen, ob sie Ihre Leerzeichen Anforderungen erfüllen und nicht die mit einer nützlichen Fehlermeldung begehen, wenn sie es nicht tun. Sie könnten einen post-commit Haken verwenden zu tun, was Sie vorschlagen, aber es würde bedeuten, ein zweiten commit aus dem Hook-Skript macht die schlechten Leerzeichen in dem ersten zu beheben begehen. Ich denke, der pre-commit Haken Ansatz besser ist.

Andere Tipps

Sie können wirklich nicht verwenden Haken begehen dies in Subversion zu tun, denn wenn die Datei vom Server geändert wird, wird es nicht auf dem Client die Version übereinstimmen. Commit Haken sind für schreibgeschützte Ereignisse wie Benachrichtigungsmeldungen zu erzeugen, oder indem Sie die Dateien zu überprüfen, ob die Festschreibung soll blockiert werden.

Siehe die Dokumentation verpflichten Haken :

  

Ein Haken ist ein Programm, durch ein Repository-Ereignis ausgelöst, wie zum Beispiel der Schaffung einer neuen Revision oder Änderung einer Revisions-Eigenschaft. Einige Haken (die sogenannten „pre Haken“) im Vorfeld eines Endlagerbetrieb laufen und bieten ein Mittel, mit dem sowohl Bericht, was passieren wird und verhindern, dass es passiert überhaupt . Andere Haken (die „Post Haken“) nach dem Abschluss eines Endlagers Ereignis laufen und sind nützlich für die Durchführung von Aufgaben, die untersuchen, aber nicht ändern-the-Repository . Jeder Haken ist genügend Informationen übergeben zu sagen, was das Ereignis ist (oder war), die spezifischen Repository Änderungen vorgeschlagen (oder abgeschlossen) und der Benutzername der Person, die das Ereignis ausgelöst hat.

Nicht sicher, welche Plattform Sie sind, aber Sie können dies tun, mit TortoiseSVN , mit seiner clientseitige Haken .

Im Wesentlichen würden Sie ein Skript schreiben, die Dateien mit einem pre-commit Haken ändern würde. Ich denke, das mehr richtig in einem Build-Skript obwohl getan wird: Sie müssen nicht wirklich Code begehen wollen haben Sie nicht einmal kompiliert oder laufen! Ihr Skript, das entfernt Leerzeichen möglicherweise etwas brechen könnte, je nach Kontext / Sprache.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top