Tue
05
Aug 2008
Pisząc zaawansowane narzędzie wygodnie byłoby zintegrować je z systemem kontroli wersji SVN. Jak odpalić funkcję SVN z poziomu programu? Można uruchomić konsolowy SVN z odpowiednim parametrami, ale konsolowy program ma konsolowe wyjście i jest konsolowo niewygodny. Dużo fajniej byłoby uruchomić jakoś TortoiseSVN, tak jakby to użytkownik wybrał z menu kontekstowego danego pliku czy katalogu polecenie otwierające odpowiednie okienko, np. Update, Commit.
Okazuje się, że da się to zrobić bardzo prosto. Szczegóły można znaleźć w helpie TortoiseSVN, pod hasłem "Automating TortoiseSVN". Pisząc w skrócie, trzeba uruchomić program TortoiseProc.exe. Pełną ścieżkę do niego można znaleźć w rejestrze, w HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseSVN\ProcPath. Jako parametry trzeba podać /notempfile, /command:commit (gdzie zamiast "commit" mogą być różne polecenia, np. "update" albo "repostatus") oraz /path:"..." ze ścieżką do danego katalogu. Można dodać /closeonend:2, aby okienko samo się zamknęło po zakończeniu operacji, jeśli nie było błędów.