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.
