Co mi u běžného použití pre-commit hooku vadí je že to pracuje nad soubory jak jsou v adresáři, ne jak jsou stagované. Tohle ten tool řeší , případně je na to nějaký standardní postup? Z textu ani dokumentace není jasné jestli --all-files se týká seznamu souborů nebo jejich obsahu.
Zatím dělám v precommitu něco na způsob git clone/worktree ... git diff --cached | patch , ale čekal bych něco jednoduššího.
Nástroj pre-commit defaultně pracuje nad soubory ve stage. Přepínač --all-files řekne "pracuj nad všemi soubory v repozitáři". Jestli to chápu správně a potřebujete, aby pracoval jen např. se změněnými řádky, tak se mi z dokumentace nezdá, že by tohle nástroj pre-commit uměl.
Můžete zkusit třeba nějakou z alternativ zmíněných v úvodu (husky, overcommit nebo lefthook), třeba to budou umět. Nebo zkusit štěstí na Awesome Git Hooks: https://github.com/aitemr/awesome-git-hooks.
Díky, podívám se,
Jen pro vysvětlení - jde mi o to, aby se kontrola prováděla nad verzí repozitáře tak jak bude po commitu před kterým se pre-commit dělá. To v zásadě znamená bez změn které jsou ve work tree ale nejsou stageované (a tedy i bez souborů které nejsou pod gitem). Které řádky a soubory se mění příslušným commitem mne při tom nezajímá.