Za pomocą TortoiseSVN za pośrednictwem wiersza polecenia

253

Chcę użyć opcji SVN wiersza polecenia. Używam TortoiseSVN i uruchamiam kilka poleceń i pojawia się następujący błąd.

„svn” nie jest rozpoznawane jako polecenie wewnętrzne ani zewnętrzne

Użyłem polecenia

svn checkout [-N] [--ignore-externals] [-r rev] URL PATH

Myślę, że powinienem dodać zmienną środowiskową lub coś innego.

Co powinienem zrobić, ale nie mogę używać TortoiseSVN z wiersza poleceń?

Night Walker
źródło
4
Sugerowałbym Slik Subversion . A po instalacji wystarczy dodać katalog bin do swojej ścieżki. -bhups
bhups
3
TortoiseSVN jest prawdopodobnie najczęściej używanym klientem SVN dla Windows GUI i jest dokładnie udokumentowany. Nie nazwałbym tego pseudo-klientem tylko dlatego, że nie jest to referencyjna implementacja wiersza poleceń.
Joey,
18
Najnowsza wersja TortoiseSVN (1.7.1 tego tekstu) ma opcję podczas instalacji narzędzi wiersza poleceń. Domyślnie nie jest włączony, ale zainstaluje standardowe pliki wiersza poleceń dla svn. Więc nie ma już potrzeby instalowania osobnego pakietu subversion, takiego jak Silk.
vee
1
Wystarczy szybki FYI, jeśli używasz Slik svn i pojawia się błąd: „svn” nie jest rozpoznawany ... ”być może będziesz musiał otworzyć okno dialogowe Właściwości systemu. Chociaż Slik dodaje poprawny wpis do zmiennej Path, może być konieczne kliknięcie przycisku edycji i „ok” (nawet jeśli nie wprowadzono żadnych zmian), aby włączyć zmienną. Przynajmniej takie było moje doświadczenie z Windows Vista. Po wykonaniu tej czynności system Windows rozpoznał zmianę w ścieżce i moje polecenie svn zostało rozpoznane.
Jesse
1
Dodałem ścieżkę SlikSvn / bin do zmiennej środowiskowej, ale nadal
pojawia

Odpowiedzi:

463

Domyślnie TortoiseSVN ma zawsze powiązany z nim GUI (graficzny interfejs użytkownika). Ale w instalatorze (w wersji 1.7 i nowszych) możesz wybrać opcję „Narzędzia klienta wiersza poleceń”, aby móc wywoływać polecenia svn (takie jak svn commit i svn update) z wiersza poleceń.

Oto zrzut ekranu opcji „narzędzia klienta wiersza poleceń” w instalatorze, musisz się upewnić, że ją wybierzesz:

Jak zainstalować TortoiseSvn-CommandLineTools

AnneTheAgile
źródło
52
Osobiście wolę tę odpowiedź od przyjętej: brak dodatkowych instalacji i pełny dostęp do standardowego wiersza poleceń SVN.
Haroldo_OK
2
Dodatkową zaletą jest to, że wersje narzędzi wiersza poleceń są zsynchronizowane z wersją TortoiseSVN.
the_mandrill
4
... co oznacza bardziej szczegółowo: format katalogu roboczego Subversion zmienił się kilka razy, np. w wersjach 1.7 i 1.8. Klient 1.7 nie użyje starszego katalogu roboczego, chyba że jest to svn upgraded; po tym kliencie 1.6 nie będzie już mógł z niego korzystać.
Tobias
38
Wskazówka: jeśli masz już zainstalowany Tortoise, nie ma potrzeby ponownej instalacji. Możesz po prostu otworzyć oryginalny plik .msi instalatora i zamiast wybierać „Odinstaluj” możesz wybrać „Modyfikuj”. To po prostu zaktualizuje twoją obecną instalację Tortoise, nie psując niczego.
Trevor
5
Wskazówka: jeśli masz już zainstalowany Tortoise i nie masz pliku .msi - możesz przejść do Panelu sterowania -> Programy i funkcje, a następnie wybrać TortoiseSVN -> Zmień.
zvi
131

TortoiseSVN ma interfejs wiersza polecenia, którego można używać do automatyzacji GUI TortoiseSVN i różni się od zwykłego interfejsu Subversion.

Informacje na temat opcji wiersza polecenia TortoiseSVN można znaleźć w dokumentacji: Dodatek D. Automatyzacja TortoiseSVN . Głównym programem do pracy tutaj jest TortoiseProc.exe.

Ale uwaga na samej górze mówi już:

Pamiętaj, że TortoiseSVN jest klientem GUI, a ten przewodnik automatyzacji pokazuje, jak sprawić, by okna dialogowe TortoiseSVN wydawały się zbierać dane od użytkowników. Jeśli chcesz napisać skrypt, który nie wymaga wprowadzania danych, powinieneś użyć oficjalnego klienta wiersza poleceń Subversion.

Inną opcją byłoby zainstalowanie plików binarnych Subversion. Slik SVN to niezła kompilacja (i nie wymaga rejestracji jak Collabnet). Najnowsze wersje TortoiseSVN obejmują również klienta wiersza poleceń, jeśli zdecydujesz się go zainstalować.

Joey
źródło
2
Wystarczy dodać do tego - upewnij się, że Tortoise jest na twojej drodze. W przeciwnym razie nic nie zadziała.
Thomas Owens
2
W oparciu o tę odpowiedź uważam, że najlepszym rozwiązaniem byłoby zainstalowanie rzeczywistego klienta wiersza polecenia SVN, a nie nauka drugiego interfejsu wiersza polecenia. Ale nie wiem jak to zrobić.
jprete
2
Thomas: Domyślnie zarówno TortoiseSVN, jak i Slik SVN odpowiednio zmienią ścieżkę.
Joey,
23
To rozwiązanie jest po prostu przestarzałe, instalator TortosieSVN zawiera teraz narzędzia wiersza poleceń.
Josh
1
Konieczne może być ponowne uruchomienie komputera po instalacji, aby uzyskać zmianę w zmiennej środowiskowej PATH.
Oliver Bock,
91

Jeśli masz już zainstalowany interfejs GUI TortoiseSVN i zastanawiasz się, jak zaktualizować do narzędzi wiersza polecenia, oto kroki ...

  1. Przejdź do Panelu sterowania systemu Windows → Program i funkcje (Windows 7+)
  2. Zlokalizuj TortoiseSVN i kliknij na niego.
  3. Wybierz „Zmień” z dostępnych opcji.
  4. Dalsze kroki można znaleźć na tym obrazku.

    Włącz wiersz poleceń TortoiseSVN

  5. Po zakończeniu korzystania z narzędzi klienta wiersza poleceń otwórz wiersz polecenia i wpisz, svn helpaby sprawdzić pomyślną instalację.

Devendra Vaja
źródło
Twoja odpowiedź nie została już sformatowana. I miał niechciane informacje. Poprawnie sformatował i edytował twoją odpowiedź. Przeczytaj więcej w centrum pomocy. ;)
Lucky
Win10 to „Aplikacje i funkcje” .. ale to chyba oczywiste
szczupły
Ok, nie wierz mi. Zadaj to pytanie jako meta, czy zmiana jest zgodna z prawem, czy nie. Nie tylko sformatował twoją odpowiedź, ale także usunął niechciane informacje, które nie są wymagane do odpowiedzi. To się nazywa umiar. A osoby z wysoką liczbą powtórzeń zazwyczaj sprzątają witrynę, moderując ją i przyczyniając się do tego, dlatego zasugerowałem, abyś poszukał centrum pomocy. Ale po prostu chcesz się kłócić zamiast zdobywać wiedzę. Powodzenia. 😉
Lucky
Tak, tak naprawdę jestem zainteresowany dzieleniem się wiedzą, a nie żądaniem czyjejś pracy i głoszenia. Nie jestem też ślepym wyznawcą wysokich powtórzeń.
Devendra Vaja
podczas gdy włączamy wiersz poleceń, pyta o ścieżkę aplikacji, którą należy pobrać. ścieżka: osdn.net/projects/tortoisesvn/storage/1.12.0/Application/…
Amit Joshi
27

Aby skorzystać z obsługi poleceń, wykonaj następujące kroki:

  1. Zdefiniuj ścieżkę w zmiennych środowiskowych:

    • otwórz „ Właściwości systemu ”;
    • na zakładce „ Zaawansowane ” kliknij przycisk „ Zmienne środowiskowe
    • w sekcji „ Zmienne systemowe ” wybierz opcję „ Ścieżka ” i kliknij „ edytuj
    • dołącz wartość zmiennej do ścieżki do pliku TortoiseProc.exe , na przykład:

      C: \ Program Files \ TortoiseSVN \ bin

  2. Ponieważ zarejestrowałeś TortoiseProc , możesz go używać zgodnie z TortoiseSVN dokumentacją .

    Przykłady:

    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 / polecenie: log / ścieżka :"c:\svn_wc\file1.txt "/ startrev: 50 / endrev: 60 / closeonend: 0

PS Aby użyć przyjaznej nazwy, takiej jak „svn” zamiast „TortoiseProc”, umieść plik „svn.bat” w katalogu „TortoiseProc.exe”. Jest przykład svn.bat:

TortoiseProc.exe %1 %2 %3
Czarodziej
źródło
Głównym problemem nie jest nazwa pliku wykonywalnego (i jak go znaleźć), ale zupełnie inna składnia wiersza poleceń; zobacz moją odpowiedź, która mówi o moim tsvnprogramie (który nie istniał w momencie odpowiedzi Warlocka). Najnowsze wersje systemu Windows pozwalają na określenie wszystkich argumentów jako %*(zamiast %1 %2 %3...).
Tobias
10

Aby włączyć svn, uruchom ponownie program instalacyjny TortoiseSVN, wybierz „Modyfikuj” (pozwala użytkownikom na zmianę sposobu instalowania funkcji) i zainstaluj „narzędzia klienta wiersza poleceń”.

Kiki
źródło
Dla tych z Was, którzy zastanawiają się, gdzie opcja „Modyfikuj” to - spróbuj przeinstalować tortoisesvn
Maya
@maya Jeśli już go zainstalowałeś, nie próbuj go odinstalować i ponownie zainstalować. Przejdź do Control Panel\Programs\Programs and Featureswyszukiwania Tortoise SVN i kliknij, Changea następnie kliknij Modify.
Lucky
9

Moim rozwiązaniem było użycie DOSKEY do skonfigurowania niektórych aliasów dla poleceń, których najczęściej używam:

DOSKEY svc=TortoiseProc.exe /command:commit /path:.
DOSKEY svu=TortoiseProc.exe /command:update /path:.
DOSKEY svl=TortoiseProc.exe /command:log /path:.
DOSKEY svd=TortoiseProc.exe /command:diff /path:$*

Google „doskey persist” zawiera wskazówki, jak skonfigurować plik .cmd, który będzie uruchamiany przy każdym otwarciu wiersza polecenia, jak plik. * Rc w systemie Unix.

SeanH
źródło
Wspaniały! Jest to jedyna odpowiedź, która faktycznie wywołuje TortoiseSVN, a nie zwykłą svn, z linii poleceń.
Warlike Chimpanzee
4

Możesz zainstalować zarówno TortoiseSVN, jak i narzędzia wiersza poleceń Apache Subversion. Zwykle instaluję narzędzia Apache SVN z witryny pobierania VisualSVN: https://www.visualsvn.com/downloads/

Po zainstalowaniu umieść Subversion \ bin w ustawionej ŚCIEŻCE. Wtedy będziesz mógł użyć TortoiseSVN, gdy chcesz użyć GUI, i masz odpowiednie narzędzia wiersza poleceń SVN do użycia z wiersza poleceń.

David
źródło
3

Istnieje zamieszanie, które powoduje, że wielu użytkowników TortoiseSVN korzysta z niewłaściwych narzędzi wiersza poleceń, kiedy faktycznie szukają svn.exeklienta wiersza poleceń.

Co powinienem zrobić, ale nie mogę używać TortoiseSVN z wiersza poleceń?

svn.exe

Jeśli chcesz uruchomić polecenia Subversion z wiersza poleceń, powinieneś uruchomić svn.exe klienta wiersza poleceń. TortoiseSVN 1.6.x i starsze wersje nie zawierały narzędzi wiersza polecenia SVN, ale współczesne wersje tak.

Jeśli chcesz pobrać narzędzia wiersza polecenia SVN bez konieczności instalowania TortoiseSVN, sprawdź stronę dystrybucji binarnych SVN lub po prostu pobierz najnowszą wersję ze strony pobierania VisualSVN .

Jeśli masz zainstalowane narzędzia wiersza polecenia SVN w systemie, ale nadal pojawia się błąd 'svn' is not recognized as an internal or external command, powinieneś sprawdzić %PATH%zmienną środowiskową. %PATH%musi zawierać ścieżkę do katalogu narzędzi SVN, npC:\Program Files (x86)\VisualSVN\bin .

TortoiseProc.exe

Oprócz svn.exeTortoiseSVN jest wyposażony w to, TortoiseProc.exektóre można wywołać z wiersza polecenia. W większości przypadków nie musisz używać tego narzędzia, ponieważ powinno ono być używane tylko do automatyzacji GUI. TortoiseProc.exenie zastępuje klienta wiersza polecenia SVN.

bahrep
źródło
2

Jak zauważył Joey, TortoiseSVN ma własną składnię wiersza poleceń. Niestety jest to dość brzydkie, jeśli jesteś do tego przyzwyczajonysvn komend i ignoruje bieżący katalog roboczy, dlatego nie jest zbyt użyteczny - z wyjątkiem skryptów.

Stworzyłem mały program Python ( tsvn), który naśladuje svnskładnię wiersza poleceń tak dokładnie, jak to możliwe, i odpowiednio wywołuje TortoiseSVN. Zatem różnica między wywoływaniem zwykłych narzędzi wiersza poleceń a wywoływaniem TortoiseSVN jest tna początku zmniejszona do małej litery .

Mój tsvn program nie jest jeszcze ukończony, ale jest już przydatny. Można go znaleźć w sklepie z serami ( https://pypi.python.org/pypi/tsvn/ )

Tobiasz
źródło
Dla tych, którzy nie znają języka Python: potrzebujesz najnowszego interpretera języka Python 2.x. Jeśli masz easy_installlub pip install, po prostu określ tsvn; w przeciwnym razie możesz pobrać i wyodrębnić plik archiwum i uruchomić zawarty setup.pyskrypt instalacyjny. Ponieważ jest interpretowany, możesz go szczegółowo sprawdzić ;-)
Tobias
2

Po pewnym czasie skorzystałem z tego obejścia ...

(w pliku .bat)

SET "CHECKOUT=http://yoururl.url";
SET "PATH=your_folder_path"

start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH%
jorgesimoes
źródło
2

Moją poprawką dotyczącą pobierania poleceń SVN było skopiowanie plików .exe i .dll z katalogu TortoiseSVN i wklejenie ich do folderu system32.

Możesz także wykonać polecenie z katalogu TortoiseSVN i dodać ścieżkę katalogu roboczego do każdego polecenia. Na przykład:

C:\Program Files\TortoiseSVN\bin> svn st -v C:\checkout

Dodanie bin do ścieżki powinno sprawić, że będzie działać bez duplikowania plików, ale dla mnie to nie działało.

KC i EE
źródło
To podejście nie działa, wciąż pokazuje'svn' is not recognized as an internal or external command
Suraj M
0

Po wybraniu „Narzędzia wiersza poleceń SVN” będzie wyglądać tak:

Wpisz opis zdjęcia tutaj

Alvin567
źródło
5
Jest to pożądany wynik, jednak ta odpowiedź nie mówi, jak to osiągnąć.
BogdanBiv,