2016-04-21 10 views
3

Ich bin ein einfacher Haken, um Syntax der Projektdateien zu überprüfen. Ich möchte die Syntax nur vor einem Commit überprüfen.Mercurial vermeiden Pre-Commit Hook auf Fach

Mein Problem ist: Wenn ich ein Regal, Mercurial run pre-commit Haken. Die Syntaxprüfung dauert 4-5 Minuten.

Wie kann ich vermeiden, meinen Haken auf dem Regal laufen zu lassen?

Meine .hrgc Linie Haken:

precommit = python ~/tools/check_syntax.py $($HG root) 

Ich kann Parameter in meinem check_syntax.py hinzufügen Kontrolle zu vermeiden, wenn es erforderlich ist.

+1

Ich glaube nicht, Sie in der Lage sind, dies zu tun. Wie es aussieht, aktiviert mercurial diese zusammen mit den Commit-Hooks nach [dieser Antwort] (http://stackoverflow.com/a/30661561/6061947). Eine Sache, die Sie vielleicht tun könnten, ist es auf 'ausgehend' laufen zu lassen, was dann nur vor dem Schieben der Änderungen in den Repo wäre. –

+0

Ich habe bereits die Antwort des Links gelesen. Ich hoffte, dass es einen Weg gab, ** hg commit ** und ** hg shelve ** in ** pre-commit ** hook zu unterscheiden. Aber du hast recht, ich sollte meine Überprüfung auf ausgehende tun. Vielen Dank. – jedema

+0

Überprüfung auf ausgehende ist zu spät - das Commit ist abgeschlossen und möglicherweise ist es nicht das letzte Commit, aber das erste in einer Reihe, die das Problem verursacht. Entweder enden Sie also entweder mit "Fix-Syntax" Commits oder vielen neuen Änderungen. – planetmaker

Antwort

3

Sie können nur die Config für diesen bestimmten Befehlsaufruf außer Kraft setzen:

hg shelve --config hooks.precommit= --name abcd

+0

Vielen Dank für deine Antwort. Kann ich eine Zeile zu **. Hgrc ** hinzufügen, um dies beim Standardverhalten zu definieren? EDIT: Nein, das ist nicht möglich. Ich muss diese Configargs nur mit dem Befehl shelve ausführen. Danke für den Trick :) Ich denke, es ist der beste Weg. – jedema

+2

Sie können einen Shell-Alias ​​für 'hg shelve --config ....' definieren;) – ikostia

+0

Ja, das habe ich schon gemacht. Vielen Dank. – jedema