Frage

Problem: anscheinend die Skripte in der .git / Haken-Verzeichnis ist abhängig von den Dateinamen passenden eines der folgenden:

post-commit
pre-commit
pre-rebase

etc ...

Kein Konzept der „Dateierweiterung“ ist erforderlich, da die „Shebang-Zeile“ zeigt an, wie die Datei ausgeführt werden soll, solange es ausführbar ist und läuft auf dem Linux-Box.

Das Problem ist, wenn Sie einige Skripte haben, dass Sie auf einem Windows-ausgeführt werden sollen.

Frage: Gibt es eine Möglichkeit, das Hook-Scripts auszuführen, die auf einem Windows-Rechner verstanden werden können

War es hilfreich?

Lösung

Ich glaube nicht, hat Windows das Konzept der Ausführung Erweiterung lose Dateien. Abhilfen würde zu 1) verwenden Cygwin git unter bash, wo die ganze Laden Geschäft funktioniert, oder 2) ein Hack in der Version von Windows git, dass tatsächlich die shebang Linien selbst und lädt den entsprechenden Interpreter analysiert. Ich kann alle Arten von philosophischen Einwand gegen die letzteren sehen, so dass ich denke, dass würde nicht passieren zu ...

Andere Tipps

Ich weiß, ich bin weit hinter auf diesem, aber ich habe eine Lösung für Sie. Wenn Sie Python verwenden, fügen Sie „Py“ der PATHEXT Umgebungsvariable (Systemsteuerung, System, Erweitert, Umgebungsvariablen). Das gleiche gilt für Ihre spezielle Skriptsprache. Dann nennen die Haken post-commit.py, pre-commit.py usw. Wenn ein Programm fragt Windows die „post-commit“ Datei in einem bestimmten Verzeichnis auszuführen, Windows über PATHEXT um aussehen wird, bis es eine Datei passende findet „post-commit.extension“, die es dann ausgeführt wird. Ich tat dies vor langer Zeit mit SVN Haken unter Windows.

Ich entschied mich tatsächlich für Option 3):

Erstellen Sie eine Windows "Wrapper" Skript, dass Invokes git und alle zugehörigen Haken ruft, dass ich ausführen möchten. Der Nachteil ist, ich habe das Wrapper-Programm zu konfigurieren, zu tun, was git automatisch nur getan hätte, wenn ich nur die Standard-Haken-Dateien verwenden konnte.

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