Ich muss mehrere Vorab-Hook-Skripts verwenden. Nicht sicher, wie man damit umgeht. Sollten alle zu einem einzigen großen Vorab-Skript kombiniert werden? Wenn nicht, wie wird mit mehreren vordefinierten Skripten verfahren?Behandeln mehrere Pre-Commit-Hooks
Antwort
Sollten alle zu einem einzigen großen Vorab-Skript kombiniert werden?
Ja und nein: Sie können nur ein pre-commit Skript deklarieren, so dass dieses Skript verantwortlich sein sollte:
- Aufruf die tatsächliche pre-commit-Skripte
- wählte für diejenigen, die eine Bestellung Skripte aufgerufen werden.
So:
- ein pre-commit Skript
- mehrere Scripts aufrufen, die jeweils zulassen oder nicht (mit ihren Exit-Status) der Commit fortzufahren.
Eine Möglichkeit, dies zu organisieren wäre, ein 'pre-commit.d' -Verzeichnis zu erstellen, das enthält alle Skripte, die Sie ausführen möchten. Ihr "Pre-Commit" -Skript würde dann alle diese Skripte in den oben beschriebenen Anweisungen ausführen. – TomDotTom
@TomDotTom Basierend auf Ihrem Vorschlag habe ich so etwas unter https://bugs.chromium.org/p/gerrit/issues/detail?id=5999 und https://github.com/tommarshall/git-good-commit implementiert/Ausgaben/19 – sorin
können Sie einen delegierenden Skript verwenden, die nur andere Skripte aufruft (subhooks):
https://gist.github.com/carlos-jenkins/89da9dcf9e0d528ac978311938aade43
Verbrauch:
Sie Ihr Bausystem einen symbolischen Link im Git zu erstellen hakt das Verzeichnis in dieses Skript mit dem Namen des Hooks, an dem Sie teilnehmen möchten.
Zum Beispiel pre-commit
.
Dieser Haken wird dann ausführen, in alphabetischer Reihenfolge, alle ausführbaren Dateien (subhooks) unter einem Ordner nach dem Haken Typ mit dem Namen gefunden Sie suffixed mit .d
besuchen.
Zum Beispiel pre-commit.d
.
Wie es aussehen könnte:
.git/hooks/
|_ pre-commit -> ../../tools/git/multihooks.py
|_ pre-commit.d/
|_ 01-cpp_coding_standard
|_ 02-python_coding_standard
|_ 03-something_else
Diese Python3 erfordert, aber man konnte kam mit etwas ähnliches mit anderen Technologien.
- 1. Python mehrere Ausnahmen behandeln
- 2. Mehrere Ausnahmen behandeln
- 3. Go - mehrere Fehler elegant behandeln?
- 4. Mehrere Anfragen in Flask behandeln
- 5. So behandeln Sie mehrere Delegierte
- 6. Python: urllib2 behandeln mehrere Öffner
- 7. Behandeln Sie mehrere Anfragen mit ICallbackEventHandler
- 8. Commander können nicht mehrere Befehlsargumente behandeln
- 9. Mehrere Clients mit twisted und spyne behandeln
- 10. Beste Möglichkeit, mehrere NSURL-Verbindungen zu behandeln
- 11. Wie mehrere Einsendungen serverseitig zu behandeln sind
- 12. So behandeln Sie Ausnahmen für mehrere Route
- 13. Wie behandeln Sie mehrere Instanzen von setTimeout()?
- 14. Beste Möglichkeit, mehrere Scrolling-Spalten zu behandeln
- 15. mehrere Anfragen vom Client behandeln und relevante Antwort zurücksenden
- 16. Beste Möglichkeit, mehrere UITableViews in einem UIViewController zu behandeln?
- 17. Was ist der beste Weg, um mehrere Aktionen zu behandeln?
- 18. Mehrere async/await-Funktionen gleichzeitig starten und separat behandeln
- 19. Wie mehrere Instanzen von App zu behandeln, wenn
- 20. Meiste Pythonic-Methode zum Behandeln einer Klasse in mehrere Klassen
- 21. Wie kann ich effizient mehrere Einfügungen in ein Array behandeln?
- 22. Akka/Java: Mehrere Nachrichtentypen in einem benutzerdefinierten Akteur behandeln?
- 23. mehrere winkelförmige Anrufe behandeln, wenn mehr Senden Schaltflächen verfügbar sind
- 24. Was ist der beste Weg, um mehrere Suchoptionen zu behandeln?
- 25. ASP.NET MVC - mehrere Objekte in einem Formular behandeln
- 26. Behandeln Sie mehrere Ajax-Aufrufe in Suchfunktionalität in angular js
- 27. So behandeln Sie mehrere Touch mit Navigation Controller und ViewController
- 28. Der beste Weg, um mehrere NSTableView (s) zu behandeln
- 29. Angular 2 - Mehrere Subskriptionen mit einer einzigen beobachtbaren Nummer behandeln
- 30. Idiomatische Art, mehrere asynchrone Ergebnisse in Java/Android zu behandeln
wie http://stackoverflow.com/questions/30104343/multiple-git-hooks-for-the-same-trigger –