Manuals

Skrypty przechwytujące po stronie serwera

Skrypt przechwytujący jest programem wywołanym przez jakieś zdarzenie repozytorium, jak tworzenie nowej wersji lub zmiany niewersjonowanego atrybutu. Każdemu przechwyceniu przekazywane jest tyle informacji, aby wiedziało, jakie to jest zdarzenie, na jakim elemencie(ach) działa oraz znało nazwę użytkownika osoby, która wywołała zdarzenie. W zależności od wyjścia lub stanu zwróconego przez przechwycenie, program przechwytujący może kontynuować działanie, zatrzymać lub zawiesić je w pewien sposób. Odnośny rozdział Skrypty przechwytujące w Księdze Subversion pozwala uzyskać pełne informacje na temat przechwyceń, które są realizowane.

Te skrypty przechwytujące wykonywane są przez serwer, na którym znajduje się repozytorium. TortoiseSVN pozwala również skonfigurować skrypty przechwytujące po stronie klienta, które są wykonywane lokalnie przy pewnych zdarzenia. Zobaczcie „Skrypty przechwytujące po stronie klienta” by uzyskać więcej informacji.

Przykładowe skrypty przechwytujące znajdują się w folderze hooks repozytorium. Skrypty te są odpowiednie dla serwerów z systemem Unix/Linux, ale muszą zostać poprawione, jeżeli serwer jest oparty na systemie Windows. Skrypt może być programem wsadowym lub wykonywalnym. Poniższy przykład pokazuje program wsadowy, który może być wykorzystany do wykonania do podmiany przechwycenia pre-revprop.

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

Pamiętajcie, że wszystko wysyłane do stdout zostaje utracone. Jeśli chcecie by wiadomość pojawiła się w oknie Zatwierdzenie Odrzucone, musicie ją wysłać do stderr. W pliku wsadowym wykonano to za pomocą >&2.

Nadpisywanie przechwyceń

Jeśli skrypt przechwytujący odrzuca Wasze zatwierdzenie, jego decyzja jest ostateczna. Ale można zbudować mechanizm nadpisania do skryptu za pomocą techniki Magicznego słowa. Jeśli skrypt chce odrzucić operację, najpierw skanuje wiadomość dziennika szukając specjalnego hasła, przy czym może to być stałe wyrażenie lub nazwa pliku z prefiksem. Jeśli odnajdzie magiczne słowo to pozwala zatwierdzeniu przejść dalej. Jeśli wyrażenie nie zostanie znalezione to może zablokować zatwierdzenie z komunikatem Nie wpisałeś magicznego słowa. :-)

TortoiseSVN homepage