2016-04-22 9 views
0

Ich arbeite in Eclipse Mars (4.5.2) mit EGit (4.1.1) unter Windows8. Ich versuche einen Pre-Commit-Hook in Eclipse mit GitForWindows zu starten.Verwenden Sie Egit, um den Vorbereitungs-Hook zu starten

begann ich mit der pre-commit-Datei mit: #!/bin/sh

und gab den PATH Variable GITFORWINDOWS mit dem Pfad zu dem Ordner ist in dem die sh.exe meiner GitForWindows Installation gespeichert ist (C: \ Programme \ Git \ bin).

Wenn ich in der GitBash git commit tun, wird Pre-Commit korrekt ausgeführt, daher wird ein Fehler ausgelöst, wenn eine bestimmte Zeichenfolge in den bereitgestellten Dateien erkannt wird. Wenn ich in Eclipse begehe passiert nichts. Was mache ich falsch?


EDIT

Ich versuchte es mit als auch Cygwin. Während es vom Cygwin-Terminal (sowie vom GitInWindows-Terminal) funktioniert, funktioniert es nicht von innerhalb von Eclipse.

Ich setze PATH auf C:\cygwin64\bin, wo die sh.exe ist.

Können Zeilenrückläufe ein Problem sein? Ich habe LF bisher.

+0

Mögliche Duplikate von [Egit-Hooks werden nicht ausgelöst] (http://stackoverflow.com/questions/6232026/egit-hooks-do-not-get-triggered) –

+0

EGit und JGit unterstützen (einige) Hooks seit 4.2 . Siehe hier: https://bugs.eclipse.org/bugs/show_bug.cgi?id=299315 –

+0

In dem Duplikat, das du vorgeschlagen hast, fand ich keine Lösung für mein Problem! Es wird nur erwähnt, dass Git-Hooks jetzt in EGit implementiert sind und funktionieren sollten. – Rattlesnake

Antwort

0

Die Einstellung der PATH Variable für Cygwin funktionierte am Ende. Ich musste den Computer allerdings neu starten.

Es funktioniert immer noch nicht für GitForWindows. Dies kann darauf zurückzuführen sein, dass JGit über eine FS_Win32_Cygwin Klasse verfügt, die den Pfad zu aus der Variablen 'PATH' extrahiert. Eine solche Klasse existiert (noch) nicht für GitForWindows. Weitere Informationen here.

Die Version (4.1.1) meines EGit scheint keine Rolle zu spielen.

0

Um Haken aus mit in Eclipse (Egit) laufen müssen Sie Folgendes tun:

Hooks implementiert sind als Skripte, die durch "/ bin/sh" ausgeführt werden müssen.

Aber auf einer einfachen Windows-Maschine haben Sie keine .
So müssen Sie cygwin installieren und <cygwin_root>/bin zu Ihrem PATH hinzufügen.

Stellen Sie sicher, dass Sie während der Cygwin-Installation auch git installieren (weil die Hook-Skripte git-Befehle ausführen wollen).

+0

In [dieser Antwort] (http://stackoverflow.com/questions/32440968/hook-is-not-working-eclipse-egit-client) GitForWindows ist als Alternative für Cygwin benannt.Was ist der Unterschied zwischen den beiden? Ich habe eine sh.exe in GitForWindows sowie – Rattlesnake

+0

gefunden. Seit Version 2 gibt es einen neuen Windows-Client namens GitForWindows, der ein alternativer Git Windows-Client ist. Es hat einen speziellen Code für Windows und es kann hier gefunden werden: https://github.com/git-for-windows – CodeWizard

+0

Ich möchte GitForWindows anstelle von Cygwin verwenden, da es bereits installiert ist. Wenn es eine äquivalente Alternative ist, sollte ich in der Lage sein, es für die Hooks zu verwenden, indem ich die 'PATH'-Variable auf ihre' sh.exe' setze. Trotzdem funktioniert es nicht. – Rattlesnake

Verwandte Themen