2021-04-09 08:42:54 +0200 +0200

Prskavčí blog

Apr 28, 2008

Subversion a hook skripty pod Windows

Pokud pracujete s TSVN nebo přímo s repozitory pod Windows časem přijdete na to, že potřebujete občas nějakou operaci před commitem nebo commitem k tomu slouží hook skripty. Hook je program, který je spuštěn nějakým triggrem, každé repozitory obsahuje předdefinované skripty. Nutnou podmínkou je mít samozřejmě nainstalovaný i Subversion ne jenom TSVN. Adresář repozitory: \path-to-repozitory\project-name [conf] [dav] [hooks] [locks] format README.TXT v adresáři hooks jsou skripty: post-commit.tmpl post-lock.tmpl post-revprop-change.tmpl post-unlock.tmpl pre-commit.tmpl pre-lock.tmpl pre-revprop-change.tmpl pre-unlock.tmpl start-commit.tmpl tyto skripty vám určují možné spouštěče, kdy se který skript vykoná. Já osobně používám jen post-commit a to tak, že jsem vytvořil post-commit.bat, který obsahuje tento kód, který přegeneruje changelog. “c:\Program Files\Subversion\bin\svn.exe” log -v –xml svn://localhost/rep_testing/start_page/trunk >c:\rootwww\wc_testing\startpage_changelog.xml ještě mě napadlo, že můžete např. udělat automatický export pro deploy na jiný stroj: “c:\Program Files\Subversion\bin\svn.exe” export –force file:///rootwww/rep_cvut/akce/trunk c:/tmp/export/akce a k němu vygenerovat příslušný textový changelog: “c:\Program Files\Subversion\bin\svn.exe” log file:///rootwww/rep_cvut/akce/trunk >c:/tmp/export/akce/changelog.txt Ty skripty samozřejmě mohou dělat mnohem více.

Generovat můžete diff soubory pro jednotlivé revize a někam je ukládat: svn diff path-to-working-copy -c revision_number –no-diff-deleted >diff_revision_number.txt Pokud potřebujete např. provést update a potom poslat mail doporučuju článek SVN post-commit for Windows, kde autor ve stejné době jako já řešil něco obdobného i když z jiného důvodu.