git commit im Pre-Push-Hook

9

Ich habe etwas in pre-push hook hinzugefügt:

%Vor%

(dies aktualisiert meine Pip-Anforderungsdatei)

Es scheint, dass der Push nicht das neue Commit, sondern dasjenige, auf dem der HEAD am Anfang des Skripts war, anstößt.

Wie behebt man das?

    
lajarre 24.01.2014, 13:55
quelle

1 Antwort

12

Sie können nicht: Der push -Befehl gibt heraus, welcher Commit vor dem Aufrufen des Hooks ausgeführt wird, und pushed, wenn der Hook 0 beendet.

Ich sehe drei Optionen:

  1. Verlassen Sie den Wert ungleich Null und teilen Sie dem Benutzer mit, Push abgelehnt, weil ich ein Commit hinzugefügt habe
  2. Beenden Sie den Nullpunkt und sagen Sie dem Benutzer: "Push wurde ausgeführt, aber Sie müssen erneut drücken, weil ich ein Commit hinzugefügt habe"
  3. Drücken Sie nach dem Hinzufügen des neuen Commits einen anderen (anderen) Push in den Hook, wobei darauf zu achten ist, dass Ihr Hook nicht endlos rekrutiert, da der "innere" Push den Haken ausführt, der einen weiteren "inneren" Push ausführt, usw Schließen Sie dann den Wert ungleich Null und brechen Sie den "äußeren" Push ab, nachdem Sie angekündigt haben, dass Sie einen "inneren" Push ausführen müssen, um den zusätzlichen Commit zu erhalten.

Meine persönliche Vorliebe wäre die erste von diesen. Ein Pre-Push-Hook ist gemeint als ein "verifiziere, dass dieser Push ist OK" -Betrieb, nicht ein "ändere diesen Push, um einen anderen Push-Vorgang zu meinen". Das bedeutet, dass Sie nicht gegen die "Absicht" der Software arbeiten. Verwenden Sie den Pre-Push-Haken als Verifizierer; Wenn Sie ein Skript wünschen, das git push aufruft, nachdem Sie bei Bedarf automatisch eine pip-dump commit hinzugefügt haben, schreiben Sie dies als Skript unter einem anderen Namen, zB dump-and-push .

    
torek 24.01.2014, 14:20
quelle

Tags und Links