TortoiseSVN w Visual Studio

Dziś przedstawię konfigurację Visual Studio integrujące TortoiseSVN.

Efekt docelowy będzie wyglądać następująco.

visual_studio_svn_1

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.

visual_studio_svn_2

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”.

visual_studio_svn_3

  • 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)”