Dziś przedstawię konfigurację Visual Studio integrujące TortoiseSVN.
Efekt docelowy będzie wyglądać następująco.
Integracja będzie miała następujące funkcjonalności:
- Możliwość wykonania polecenia „Commit” z dowolnego miejsca w otwartej solucji,
- Możliwość dodania pliku do repozytorium „Add File” (bardzo przydatne na początku tworzenia rozwiązania)
- Dostęp do polecenia „Show Log” z dowolnego miejsca w otwartej solucji
Konfiguracja jest oparta o narzędzie dostarczane z każdą instalacją TortoiseSVN zwane TortoiseProc.exe. Przeczytanie dokumentacji umożliwia dodanie większej ilości funkcjonalności niż te przedstawione wyżej.
Dla lubiących zadawać pytania.
Dlaczego nie używać istniejących narzędzi do integracji z Visual Studio?
Dlatego, że cześć jest płatna, dlatego, że cześć nie działa z Visual Studio Express.
Do dzieła cześć I:
- Najpierw konfigurujemy polecenia dla Visual-a. Otwieramy okienko Tools->Externals Tools i dodajemy nowy „Menu content”.
- Wypełniamy pola Title (nazwa będzie widoczna w pasku narzędziowym w moim przypadku to „SVN Log”
- Command (ścieżka do exe-ka, w moim przypadku „C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe”)
- Arguments. Wszystkie argumenty dostępne są w dokumentacji. Dla polecenia TortoiseSVN „Show Log” będzie to /command:log /path:”$(SolutionDir)”
$SolutionDir jest zmienną ze ścieżką do naszej solucji dostarczoną przez Viusal-a można wybrać inne ścieżki jeśli będziemy je potrzebować np: do pliku, do katalogu nadrzędnego.
Do dzieła cześć II:
- Musimy przypisać komendy do paska narzędzi. Otwieramy okienko Tools->Customize.
- Zaznaczamy CheckBox-a Toolbar z listBox-a wybieramy Standard.
- Teraz klikamy „Add Command” i w okienku wybieramy „Categories” Tools.
Tu zaczyna się tricky part. Dodane w cześć I komendy są widoczne w okienku „Commands” jednak nie widać ich nazw. Wszystkie komendy są przypisywane do „External Command 1…24”.
- Z doświadczenia wiem, że jeśli nie dodawałeś żadnych innych komend wcześniej to tą którą dodałeś jest przy numerze „External Command 8” w górę.
- Do dodaniu zamykamy okienko i naszym oczom ukazuje się widok paska narzędzi z poleceniem „SVN Log”
Całą konfigurację wykonujemy od początku dla każdego polecenia, które chcemy umieścić.
Poniżej podaje listę argumentów do skonfigurowania innych poleceń z SVN-a
- Diff File – /command:diff /path:”$(ItemPath)”
- Log File – /command:log /path:”$(ItemPath)” ( historia dla pojedyńczego pliku)
- Commit – /command:commit /path:”$(SolutionDir)”
- Show Log – /command:log /path:”$(SolutionDir)”
- Switch – /command:switch /path:”$(SolutionDir)”
- Add File – /command:add /path:”$(ItemPath)”