Manuals

Skripty háku na strane servera

Skript háku je program spustený nejakou udalosťou úložiska, napríklad vytvorením novej revízie alebo úpravou neoverenej vlastnosti. Každému háku je odovzdaných dostatok informácií na to, aby ste zistili, o čo ide, na aký cieľ (ciele) operuje a používateľské meno osoby, ktorá udalosť spustila. V závislosti od stavu výstupu alebo návratu háku môže program háku pokračovať v akcii, zastaviť ju alebo ju nejakým spôsobom pozastaviť. Prečítajte si kapitolu o skriptoch háku v knihe Subversion Book pre všetky podrobnosti o implementovaných hákoch.

Tieto skripty háku vykonáva server, ktorý je hostiteľom úložiska. TortoiseSVN tiež umožňuje konfigurovať skripty háku na strane klienta, ktoré sa pri určitých udalostiach vykonávajú lokálne. Pre viac informácií pozri “Skripty hákov na strane klienta”.

Ukážky skriptov háku nájdete v dokumente háky priečinka úložiska. Tieto ukážkové skripty sú vhodné pre servery Unix/Linux, ale ak je váš server založený na systéme Windows, je potrebné ich upraviť. Hákom môže byť dávkový súbor alebo spustiteľný súbor. Nasledujúca ukážka zobrazuje dávkový súbor, ktorý by sa mohol použiť na implementáciu háku pre-revprop-change.

rem Only allow log messages to be changed.
if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1
    

Upozorňujeme, že všetko, čo je odoslané na výstup, sa zahodí. Ak chcete, aby sa správa zobrazila v dialógovom okne Potvrdiť odmietnutie, musíte ju poslať na adresu stderr. V dávkovom súbore sa to dosiahne použitím > & 2 .

Nadradené háky

Ak skript háku odmietne vaše odovzdanie, jeho rozhodnutie je konečné. Ale môžete vytvoriť mechanizmus prepísania do samotného skriptu použitím magického slova technika. Ak chce skript odmietnuť operáciu, najskôr skontroluje správu protokolu, či neobsahuje špeciálnu prístupovú frázu, či už pevnú frázu, alebo možno názov súboru s predponou. Ak nájde magické slovo, umožní v odovzdaní pokračovať. Ak sa fráza nenájde, môže zablokovať odovzdanie správou ako nepovedali ste magické slovo. :-)

TortoiseSVN homepage