2012-03-21 21 views
9

Esistono soluzioni premade per applicare i buoni standard Python negli hook di commit Git?L'imposizione della formattazione PEP-8 in Github commette

C'è un modo per automatizzare questo processo nei checkout locali (akin Bazaar dove si possono spingere i commit hook ai client)? Dovrebbe essere sufficiente che quando esegui il checkout di un repo venga installato con i ganci di commit, senza ulteriori lavori/comandi da eseguire.

E.g. se il tuo file .py ha una scheda, il commit si interrompe e un droide viene inviato per sculacciare lo sviluppatore.

+0

Solo per notare che ho scritto un piccolo strumento per aiutare su tutto questo: https://github.com/miohtama/vvv –

risposta

9

È possibile aggiungere un servizio sul lato GitHub (vedere "GitHub - All the Hooks" e existing third-party services).

Ma non si può "spingere un gancio" (vedi "why it is not possible to git add .git/hooks/my-hook" o "Git remote/shared pre-commit hook".

È possibile versione dello script, che sarebbe servita come il gancio, ma ogni cliente avrebbe ancora bisogno di attivare il loro pre-commit hook (con un link simbolico che punta a quello script di versione).

un esempio di uno script di versione (per gli standard di Python) sarebbe visibile in questo blog post, da Lorenzo Bolla, e aggiornato in questo GitHub repo.
si basa su PyLint e PyFlake (vedi anche "PyLint, PyChecker or PyFlakes?").


L'OP menziona nei commenti l'utilità package vvv 0.1

una comodità per codice di validazione sorgente del software e linting

VVV è uno strumento per facilitare la convalida e rilascio di fibre di integrazione per il vostro progetto software.
Con un singolo comando convalidare tutti i file, indipendentemente dal linguaggio di programmazione, in una struttura di origine rispetto a un criterio specificato in un semplice file di configurazione.
VVV impedisce di commettere errori nel controllo del codice sorgente del software o facilita la pulizia.

+0

Nota: pylint e PyFlake non sono una risposta fr vostro specifico stile di guida PEP8 Python, solo un esempio di come installare ed eseguire uno script python in un hook Git. – VonC

+0

Ora ecco un semplice strumento installabile per questo comando: pypi.python.org/pypi/vvv/ –

+0

@MikkoOhtamaa Interessante l'ho incluso nella risposta per maggiore visibilità. – VonC

Problemi correlati