Ich habe ein nerviges Problem. Wir führen Linting als Pre-Commit-Hook aus. Das Problem besteht darin, dass es das Arbeitsverzeichnis und nicht das eigentliche Commit angibt. Es gibt zwei Probleme damit:Wie füge ich das Commit anstelle des Arbeitsverzeichnisses ein?
Commit ist schlecht, aber Linting passiert.
Wenn Sie vergessen haben, Ihre Änderungen nach dem Beheben der Linting-Probleme zu übernehmen, geschieht dies.Commit ist gut, aber Linting schlägt fehl.
Ich habe oft Debug-Code, den ich nicht festlegen möchte. Es hat wirklich keinen Sinn, diese Änderungen zu ignorieren, und es ist nervig, damit umzugehen.
Nun ist die Frage, wie ich schreiben kann eine intelligentere Haken pre-commit, dass die tatsächlichen begehen, anstatt das Arbeitsverzeichnis Fusseln, vorzugsweise ohne das Arbeitsverzeichnis zu ändern?
Nur das abgestufte Diff. – ElpieKay
Klingt Edge-Casey. Erstellen Sie keine Prozesse, die auf Vorab-Hooks angewiesen sind. Sie dienen nur der Bequemlichkeit und können leicht deaktiviert werden. Wir verwenden verschiedene Zweige, um Hauptversionen unseres Produkts darzustellen, und veröffentlichen gelegentlich Fehlerkorrekturen in alten Zweigen. Da wir die neueste Version von eslint verwenden, schlägt Linting in Zweigen basierend auf älteren Versionen fehl. Wir drücken einfach mit '--no-verify' auf den Server, aber unser Build-Prozess ist viel robuster und sorgt dafür, dass Linting (mit der korrekten Version) vor dem Zusammenführen zu Zweigstellen (per PR) – JDB
@JDB Jenkins läuft linting, bevor das Commit mit dem Master zusammengeführt wird, so dass der Prozess nicht auf den Pre-Commit-Hook angewiesen ist. Problem ist, dass Jenkins normalerweise überlastet ist und es viel Zeit dauern kann, bevor es tatsächlich ausgeführt wird. Der Pre-Commit-Hook ist gut, weil er viel schneller Feedback gibt und Jenkins unnötig belastet. –