Ponieważ wszystkie polecenia TortoiseSVN są kontrolowane przez parametry wiersza polecenia, można zautomatyzować za pomocą skryptów wsadowych lub uruchamiać konkretne polecenia i okna dialogowe z innych programów (np. ulubionego edytora tekstu).
Pamiętaj, że TortoiseSVN jest GUI klienta, a ten przewodnik automatyki pokazuje jak wywołać okna dialogowe TortoiseSVN aby gromadzić dane wprowadzone przez użytkownika. Jeśli chcesz napisać skrypt, który nie wymaga żadnego wejścia, należy użyć oficjalnego klienta linii poleceń Subversion.
Program GUI TortoiseSVN nosi nazwę TortoiseProc.exe
. Wszystkie polecenia są określone przez parametr /command:abcd
, gdzie abcd
jest wymaganą nazwą polecenia. Większość z tych poleceń wymaga co najmniej jednego argumentu ścieżki, który jest podawany przez /path:"jakaś\ścieżka"
. W poniższej tabeli polecenie odnosi się do parametru /command:abcd
a ścieżka odnosi się do parametru /path:"jakaś\ścieżka"
.
Jest specjalne polecenie nie wymagające parametru /command:abcd
, gdy jednak nie wskazano nic w linii poleceń, jest uruchamiany monitor projektu. Jeżeli podano opcję /tray
, monitor projektu uruchamiany jest ukryty i dodaje tylko ikonę w zasobniku systemowym.
Ponieważ niektóre polecenia mogą przyjmować listę ścieżek docelowych (np. zatwierdzenie kilku konkretnych plików) parametr /path
może potrwać kilka ścieżek oddzielonych znakiem *
.
Można również określić plik, który zawiera listę ścieżek oddzielonych znakami nowej linii. Plik musi być w formacie UTF-16, bez BOM. eśli wskażecie taki plik, użyjcie /pathfile
zamiast /path
. Aby TortoiseProc usunął ten plik po wykonaniu polecenia, można przekazać parametr /deletepathfile
. Bez wpisania /deletepathfile
, konieczne jest usunięcie ręczne tego pliku lub pozostanie on po operacji.
Okno dialogowe postępu, które jest używana do zatwierdzenia, aktualizacji i wielu innych poleceń zwykle pozostaje otwarte po zakończeniu polecenia dopóki użytkownik nie naciśnie przycisku
. Można to zmienić poprzez zaznaczenie odpowiedniej opcji w oknie ustawień. Ale użycie tego ustawienia spowoduje zamknięcie okna dialogowego postępu, niezależnie czy uruchomiono polecenie z pliku wsadowego czy z menu kontekstowego TortoiseSVN.Aby określić inną lokalizację pliku konfiguracji, użyć należy parametru /configdir:"ścieżka\do\folderu\konfiguracji"
. Nadpisze to domyślną ścieżkę, w tym ustawienia rejestru.
Aby zamknąć automatycznie okno postępu na końcu polecenia bez wykorzystania stałych ustawień można przekazać parametr /closeonend
.
/closeonend:0
nie zamykać okna automatycznie
/closeonend:1
zamknąć automatycznie jeśli brak błędów
/closeonend:2
zamknąć automatycznie jeśli brak błędów i konfliktów
/closeonend:3
zamknąć automatycznie jeśli brak błędów, konfliktów i scaleń
Aby zamknąć okno dialogowe postępu dla operacji lokalnych, jeśli nie ma błędów i konfliktów, należy przekazać parametr /closeonend
.
Poniższa tabela zawiera listę wszystkich poleceń, które można wykonać za pomocą wiersza poleceń TortoiseProc.exe. Jak opisano powyżej, powinny one być stosowane w postaci /command:abcd
. Wewnątrz tabeli przedrostek /command
jest pomijany w celu zaoszczędzenia miejsca.
Tabela D.1. Lista dostępnych poleceń i opcji
Polecenie | Opis |
---|---|
:about | Pokazuje okno informacji o programie. Jest ono pokazywane również jeśli nie podano polecenia. |
:log |
Otwiera okno dziennika.
An svn date revision can be in one of the following formats:
|
:checkout |
Opens the checkout dialog. The If you specify |
:import | Otwiera okno importu. /path określa katalog z danymi do importu. Można również określić przełącznik /logmsg by przekazać predefiniowane opisy zmian do okna importu. Lub, jeśli nie chce się przekazać opisu zmiany z linii poleceń, należy użyć /logmsgfile:ścieżka , gdzie ścieżka wskazuje na plik zawierający opis zmiany. |
:update | Aktualizuje kopię roboczą w /path do HEAD. Jeśli dodano opcję /rev to wyświetlane jest okno dialogowe z pytaniem użytkownika, do której wersji zastosować uaktualnienie. By uniknąć okienka wskaż numer wersji /rev:1234 . Inne opcje to /nonrecursive , /ignoreexternals i /ignoreexternals . /stickydepth wskazuje, że głębokość powinna być określona ściśle, tworząc rzadkie pobieranie. Można ustawić /skipprechecks by pominąć wszystkie sprawdzenia wykonywane przed aktualizacją. Jeśli go wskazano, zostaje zablokowany przycisk Pokaż dziennik, zaś menu kontekstowe pokazywania różnic pozostaje również zablokowane po aktualizacji. |
:commit | Otwiera okno dialogowe zatwierdzenia. /path określa katalog docelowy lub listę plików do zatwierdzenia. Można również określić przełącznik /logmsg dla przekazania predefiniowanego opisu zmiany do okna zatwierdzenia. Lub, jeśli nie chcecie przekazać opisu zmiany z linii poleceń, należy użyć /logmsgfile:ścieżka , gdzie ścieżka wskazuje na plik zawierający opis zmiany. Aby wstępnie wypełnić pole ID błędu (w przypadku prawidłowej konfiguracji integracji z trackerami błędów), można użyć /bugid:"tutaj id błędu" . |
:add | Dodaje pliki z /path do kontroli wersji. |
:revert | Wycofuje lokalne modyfikacje kopii roboczej. /path informuje, jakie elementy przywrócić. |
:cleanup | Usuwa przerwane lub anulowane polecenia i odblokowuje kopię roboczą w /path . Konieczne jest wykonanie /cleanup by przeprowadzić rzeczywiste czyszczenie. Użyjcie /noui aby zapobiec pojawieniu się okna wyniku (mówiącego o zakończeniu oczyszczenia albo wyświetlającego komunikat błędu). /noprogressui wyłącza również okno dialogowe postępu. /nodlg wyłącza wyświetlenie okna oczyszczania, w którym użytkownik może wybrać, gdzie dokładnie należy wykonać uporządkowanie. Dostępne działania mogą być określone przy użyciu opcji /cleanup dla statusu uporządkowania, /breaklocks by złamać wszystkie blokady, /revert by wycofać niezatwierdzone zmiany, /delunversioned , /delignored , /refreshshell , /externals , /fixtimestamps and /vacuum . |
:resolve | Oznacza skonfliktowany plik podany w /path jako rozwiązany. Jeśli jest podane /noquestion , wtedy rozwiązanie jest wykonywane bez poprzedzającego pytania, czy naprawdę należy to zrobić. |
:repocreate | Tworzy repozytorium w /path |
:switch | Otwiera okno przełączenia. Folder /path określa miejsce docelowe zaś /url to adres URL do przełączenia. |
:export | Eksportuje kopię roboczą z /path do innego katalogu. Jeśli /path wskazuje na niewersjonowany folder, zostaniecie zapytani o adres URL do eksportu do katalogu z /path . Jeśli podacie klucz /blockpathadjustments , automatyczna korekta ścieżki eksportu zostanie zablokowana. |
:dropexport | Eksportuje kopię roboczą z /path do folderu wskazanego w /droptarget . To działanie nie wykorzystuje okna dialogowego eksportu, ale wykonuje eksport bezpośrednio. Opcja /overwrite wskazuje, że istniejące pliki zostaną nadpisane bez potwierdzenia, zaś opcja /autorename , że jeśli pliki istnieją, pliki eksportowane zostaną przemianowane bu uniknąć nadpisania. Opcja /extended może zawierać localchanges by wyeksportować tylko pliki zmienione lokalnie, albo unversioned by wyeksportować również wszystkie elementy niewersjonowane. |
:dropvendor | Copies the folder in /path recursively to the directory specified in /droptarget . New files are added automatically, and missing files get removed in the target working copy, basically ensuring that source and destination are exactly the same. Specify /noui to skip the confirmation dialog, and /noprogressui to also disable showing the progress dialog. |
:merge | Otwiera okno łączenia. /path wskazuje na folder docelowy. Przy łączeniu zakresu rewizji, dostępne są następujące opcje: /fromurl:URL , /revrange:ciąg . Przy łączeniu dwóch drzew repozytoriów, dostępne są następujące opcje: /fromurl:URL , /tourl:URL , /fromrev:xxx i /torev:xxx . |
:mergeall | Otwiera okno dialogowe scalenia wszystkiego. /path wskazuje folder docelowy. |
:copy | Wywołuje okno dialogowe gałęzi/etykiety. Zapis /path określa kopię roboczą, z której kopiowana jest gałąź/etykieta. Natomiast /url to docelowy adres URL. Jeśli adres URL zaczyna się od ^ przyjmuje się, że jest on względny w odniesieniu do folderu głównego repozytorium. Aby wstępnie zaznaczyć opcję <placeholder-4> możecie przekazać przełącznik /switchaftercopy . Aby zaznaczyć opcję <placeholder-6> przekazać należy przełącznik /makeparents . Można również podać przełącznik /logmsg by przesłać w linii poleceń predefiniowany komunikat dzienika do okna gałęzi/etykiety. Istnieje też możliwość, jeśli nie chcecie pisać komunikatów w linii poleceń, użycia /logmsgfile:ścieżka , gdzie ścieżka wskazuje na plik zawierający komunikat dziennika.</placeholder-6></placeholder-4> |
:settings | Otwiera okno dialogowe ustawień. |
:remove | Usuwa plik(i) w /path z kontroli wersji. |
:rename | Zmienia nazwę pliku w /path . Nowa nazwa dla pliku, jest wymagana w oknie dialogowym. Aby uniknąć pytania o zmianę nazwy podobnych plików w jednym kroku, podaj /noquestion . |
:diff | Uruchamia zewnętrzne narzędzie porównania wskazane w ustawieniach TortoiseSVN. /path wskazuje pierwszy plik. jeśli ustawiono opcję /path2 , program porównujący uruchamia się z tymi dwoma plikami. jeżeli pominięto /path2 , porównywanie wykonuje się pomiędzy plikiem z /path a jego BASE. Jeśli wskazany plik ma również zmienione atrybuty, zewnętrzne narzędzie porównywania jest odpalane dla każdego zmienionego atrybutu. By do tego nie dopuścić, przekażcie opcję /ignoreprops . By jawnie wskazać numery wersji należy podać /startrev:xxx i /endrev:xxx , a przy opcjonalnej wersji wieszakowej użyć /pegrevision:xxx . Jeżeli ustawiono /blame a nie wskazano /path2 , to porównywanie zostaje zakończone przez adnotowanie na początku plików ze wskazanymi wersjami. Parametr /line:xxx wskazuje linię od której zaczyna się wyświetlać porównywanie. |
:shelve | Shelves the specified paths in a new shelf. The option /shelfname:name specifies the name of the shelf. An optional log message can be specified with /logmsg:message . If option /checkpoint is passed, the modifications of the files are kept. |
:unshelve | Applies the shelf with the name /shelfname:name to the working copy path. By default the last version of the shelf is applied, but you can specify a version with /version:X . |
:showcompare |
W zależności od URLi i wersji do porównania, pokazywane są albo plik różnicowy (jeśli ustawiona jest opcja Opcje Jeżeli wskazany adres url ma również zmienione atrybuty, zewnętrzne narzędzie różnicujące zostanie uruchomione również dla każdego zmienionego atrybutu. By temu zapobiec, wykonajcie z opcją If a unified diff is requested, an optional |
:conflicteditor | Uruchamia edytor konfliktu określony w ustawieniach TortoiseSVN z odpowiednimi plikami dla pliku konfliktu w /path . |
:relocate | Otwiera okno zmiany lokalizacji. /path określa ścieżkę kopii roboczej do przeniesienia. |
:help | Otwiera plik pomocy. |
:repostatus | Otwiera okno dialogowe sprawdź zmiany. /path określa katalog w kopii roboczej. Jeśli jest określony /remote , okno łączy się z repozytorium bezpośrednio po starcie, jak gdyby użytkownik kliknął przycisk Sprawdź repozytorium. |
:repobrowser |
Uruchamia okno przeglądarki repozytorium, wskazujące na adres URL kopii roboczej podany w Dodatkowa opcja Jeśli Jeśli jest określone |
:ignore | Dodaje wszystkie cele w /path do listy ignorowanych, tzn. dodaje własność svn:ignore do tych plików. |
:blame |
Otwiera okno dialogowe adnotacji dla pliku określonego w Jeśli są ustawione opcje Jeśli jest ustawiona opcja Opcje |
:cat | Zapisuje plik z adresu URL lub ścieżki w kopii roboczej podany w /path do lokalizacji podanej w /savepath:ścieżka . Wersja jest podana w /revision:xxx . Można tego użyć pobrania pliku o określonej wersji. |
:createpatch | Creates a patch file for the path given in /path . To skip the file Save-As dialog you can pass /savepath:ścieżka to specify the path where to save the patch file to directly. To prevent the unified diff viewer from being started showing the patch file, pass /noview . If a unified diff is requested, an optional prettyprint option can be specified which will show the merge-info properties in a more user readable format. |
:revisiongraph |
Pokazuje wykres wersji dla ścieżki podanej w Aby utworzyć plik obrazu z wykresu wersji dla określonej ścieżki, ale bez wyświetlania okna wykresu, przekazuje się Ponieważ wykres wersji posiada wiele opcji, które wpływają na sposób jego wyświetlenia, można również ustawić opcje podczas tworzenia pliku obrazu wyjściowego. Można przekazać te ustawienia w |
:lock | Blokuje plik lub wszystkie pliki w katalogu podanym w /path . Wyświetlane jest okno 'Blokada', tak więc użytkownik może wpisać komentarz dla blokady. |
:unlock | Odblokowuje plik lub wszystkie pliki w katalogu podanym w /path . |
:rebuildiconcache | Odbudowuje bufor ikony windows. Należy go używać tylko w przypadku gdy ikony windows są uszkodzone. Efektem ubocznym tego (nie do uniknięcia) jest zmiana ikon na pulpicie. Aby wyłączyć okno komunikatu, przekażcie /noquestion . |
:properties |
Pokazuje okno atrybutów dla ścieżki podanej w Aby działać na wersjonowanych atrybutach to polecenie wymaga kopii roboczej. Atrybuty wersji można przeglądać/zmieniać jeśli Aby otworzyć okno dialogowe atrybutów bezpośrednio dla określonego atrybutu, przekaż nazwę atrybutu w postaci |
:sync |
Eksportuje/importuje ustawienia, albo gdy bieżące lub wyeksportowane ustawienia się zmienią albo jak określono. Jeśli hasło przekazano wraz z Parametr Jeśli nie zostały wpisane ani Jeśli podano Jeśli wpisano Parametr |
Przykłady (każdy powinien być wpisany w jednej linii):
TortoiseProc.exe /command:commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt" /logmsg:"test log message" /closeonend:0 TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend:0 TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt" /startrev:50 /endrev:60 /closeonend:0