Manuals

Hákové skripty na straně serveru

Hákový skript je program spouštěný při nějaké událostí úložiště, jako je například vytvoření nové revize nebo změna vlastnosti bez verze. Každému háku je předán dostatek informací, pro zjištění, co je to za událost, jaké jsou cíle() operace a uživatelské jméno osoby, která událost spustila. V závislosti na výstupu háku či návratovém kódu, může hákový program pokračovat v činnosti, zastavit nebo ji nějakým způsobem pozastavit. Více informací naleznete v kapitole týkající se Hákové skripty v knize Subversion pro podrobnosti o hácích, které jsou zavedeny.

Tyto hákové skripty jsou spouštěny serverem, který je hostitelem úložiště. TortoiseSVN také umožňuje nastavit hákové skripty na straně klienta, které jsou spouštěny lokálně během určitých události. Navštivte „Hákové Skripty na Straně Klienta“ pro více informací.

Příklady hákových skriptů lze nalézt v adresáři hooks v úložišti. Tyto ukázkové skripty jsou vhodné pro Unix/Linux servery, ale je třeba je změnit, pokud máte Windows server. Hák může být dávkový soubor nebo spustitelný soubor. Příklad níže ukazuje dávkový soubor, který by mohl být použit k před-provedením-změn-vlastností revizí.

rem Pouze zprávy záznamu mohou být změněny.
id "%4" == "svn:log" exit 0
echo Vlastnost '%4' nemůže být změněna >&2
exit 1

Nezapomeňte, že všechno poslané do stdout je zahozeno. Pokud chcete, aby se zpráva zobrazila v dialogovém okně Odmítnutí odevzdání je třeba ji poslat na stderr. V dávkovém souboru je tohoto dosaženo použitím >&2.

Anulace háků

Pokud hákový skript Vaši změnu odmítl, pak je jeho rozhodnutí konečné. Ale můžete vytvořit anulující mechanismus v samotném skriptu s použitím techniky Kouzelného Slova. Pokud skript chce odmítnout operaci, nejprve prohledá zprávu záznamu pro speciální výraz a to buď fixní výraz nebo třeba název souboru s předponou. Pokud zjistí magické slovo, pak umožní pokračovat v odevzdání. Pokud výraz není nalezen, pak může zablokovat odevzdání s hlášením Neřekl jste kouzelné slovo. :-)

TortoiseSVN homepage