Verwenden von TortoiseSVN über die Befehlszeile

253

Ich möchte Befehlszeilen-SVN-Optionen verwenden. Ich verwende TortoiseSVN, führe mehrere Befehle aus und erhalte die folgende Fehlermeldung.

'svn' wird nicht als interner oder externer Befehl erkannt

Ich habe den Befehl benutzt

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

Ich denke, ich sollte eine Umgebungsvariable oder etwas anderes hinzufügen.

Was soll ich tun oder kann TortoiseSVN nicht über die Befehlszeile verwendet werden?

Nachtwanderer
quelle
4
Ich würde Slik Subversion vorschlagen . Und nach der Installation fügen Sie einfach das bin-Verzeichnis zu Ihrem Pfad hinzu. -bhups
bhups
3
TortoiseSVN ist wahrscheinlich der am häufigsten verwendete SVN-Client für Windows-GUI und wird gründlich dokumentiert. Ich würde es nicht Pseudo-Client nennen, nur weil es nicht die Referenz-Befehlszeilenimplementierung ist.
Joey
18
Die neueste Version von TortoiseSVN (1.7.1 dieses Schreibens) bietet während der Installation eine Option für Befehlszeilentools. Es ist nicht standardmäßig aktiviert, installiert jedoch die Standardbefehlszeilendateien für svn. Es ist also nicht mehr erforderlich, ein separates Subversion-Paket wie Silk zu installieren.
Vee
1
Nur eine kurze Information: Wenn Sie Slik svn verwenden und die folgende Fehlermeldung erhalten: "'svn' wird nicht erkannt ...", müssen Sie möglicherweise den Dialog Systemeigenschaften öffnen. Während Slik Ihrer Pfadvariablen den richtigen Eintrag hinzufügt, müssen Sie möglicherweise auf Bearbeiten und auf "OK" klicken (auch wenn Sie keine Änderungen vorgenommen haben), um die Variable zu aktivieren. Zumindest war das meine Erfahrung mit Windows Vista. Danach erkannte Windows die Änderung im Pfad und mein Befehl svn wurde erkannt.
Jesse
1
Ich habe den SlikSvn / bin-Pfad zur Umgebungsvariablen hinzugefügt, erhalte aber immer noch diesen Fehler ...
Lion789

Antworten:

463

Standardmäßig ist TortoiseSVN immer eine grafische Benutzeroberfläche (GUI) zugeordnet. Im Installationsprogramm (ab Version 1.7) können Sie jedoch die Option "Befehlszeilen-Client-Tools" auswählen, um svn-Befehle (wie svn commit und svn update) über die Befehlszeile aufzurufen.

Hier ist ein Screenshot der Option "Befehlszeilen-Client-Tools" im Installationsprogramm. Sie müssen sicherstellen, dass Sie sie auswählen:

So installieren Sie TortoiseSvn-CommandLineTools

AnneTheAgile
quelle
52
Persönlich ziehe ich diese Antwort der akzeptierten vor: keine sekundären Installationen und vollständiger Zugriff auf die Standard-SVN-Befehlszeile.
Haroldo_OK
2
Hat auch den zusätzlichen Vorteil, dass die Versionen des Befehlszeilen-Tools mit der TortoiseSVN-Version synchron bleiben.
the_mandrill
4
... was im Detail bedeutet: Das Arbeitsverzeichnisformat von Subversion hat sich einige Male geändert, z. B. in den Versionen 1.7 und 1.8. Ein 1.7-Client verwendet kein älteres Arbeitsverzeichnis, es sei denn, es ist svn upgraded; Danach kann ein 1.6-Client es nicht mehr verwenden.
Tobias
38
Wenn Sie Tortoise bereits installiert haben, müssen Sie es nicht neu installieren. Sie können einfach die ursprüngliche MSI-Datei des Installationsprogramms öffnen und statt "Deinstallieren" die Option "Ändern" auswählen. Es wird nur Ihre aktuelle Tortoise-Installation aktualisiert, ohne etwas durcheinander zu bringen.
Trevor
5
Als Tipp: Wenn Sie Tortoise bereits installiert haben und die MSI-Datei nicht haben , können Sie in der Systemsteuerung -> Programme und Funktionen auf TortoiseSVN -> Ändern klicken.
zvi
131

TortoiseSVN verfügt über eine Befehlszeilenschnittstelle, die für die Automatisierung der TortoiseSVN-Benutzeroberfläche verwendet werden kann und sich von der normalen Subversion unterscheidet.

Informationen zu den Befehlszeilenoptionen von TortoiseSVN finden Sie in der Dokumentation: Anhang D. Automatisieren von TortoiseSVN . Das Hauptprogramm, mit dem hier gearbeitet werden soll, ist TortoiseProc.exe.

Aber eine Notiz ganz oben sagt schon:

Denken Sie daran, dass TortoiseSVN ein GUI-Client ist. In diesem Automatisierungshandbuch erfahren Sie, wie Sie die TortoiseSVN-Dialogfelder zum Sammeln von Benutzereingaben anzeigen. Wenn Sie ein Skript schreiben möchten, für das keine Eingabe erforderlich ist, sollten Sie stattdessen den offiziellen Subversion-Befehlszeilenclient verwenden.

Eine andere Möglichkeit wäre, dass Sie die Subversion-Binärdateien installieren. Slik SVN ist ein netter Build (und erfordert keine Registrierung wie Collabnet). Neuere Versionen von TortoiseSVN enthalten auch den Befehlszeilenclient, wenn Sie ihn installieren möchten.

Joey
quelle
2
Nur um das hinzuzufügen - stellen Sie sicher, dass Tortoise auf Ihrem Weg ist. Sonst funktioniert nichts.
Thomas Owens
2
Basierend auf dieser Antwort denke ich, dass die beste Wette darin besteht, den eigentlichen SVN-Befehlszeilenclient zu installieren, anstatt eine zweite Befehlszeilenschnittstelle zu lernen. Ich weiß allerdings nicht, wie ich das machen soll.
jprete
2
Thomas: Standardmäßig ändern sowohl TortoiseSVN als auch Slik SVN den Pfad entsprechend.
Joey
23
Diese Lösung ist einfach veraltet. Das TortosieSVN-Installationsprogramm enthält jetzt die Befehlszeilentools.
Josh
1
Möglicherweise müssen Sie nach der Installation einen Neustart durchführen, damit Sie die Änderung an Ihrer Umgebungsvariablen PATH erhalten.
Oliver Bock
91

Falls Sie die TortoiseSVN-Benutzeroberfläche bereits installiert haben und sich fragen, wie Sie ein Upgrade auf Befehlszeilentools durchführen können, gehen Sie wie folgt vor ...

  1. Gehen Sie zu Windows-Systemsteuerung → Programm und Funktionen (Windows 7+).
  2. Suchen Sie TortoiseSVN und klicken Sie darauf.
  3. Wählen Sie "Ändern" aus den verfügbaren Optionen.
  4. Weitere Schritte finden Sie in diesem Bild.

    TortoiseSVN Command Line Enable

  5. Öffnen Sie nach Abschluss der Befehlszeilen-Client-Tools eine Eingabeaufforderung und geben Sie ein svn help, um die erfolgreiche Installation zu überprüfen.

Devendra Vaja
quelle
Ihre Antwort wurde noch nicht formatiert. Und es hatte unerwünschte Informationen. Er hat Ihre Antwort richtig formatiert und bearbeitet. Bitte lesen Sie die Hilfe für weitere Informationen. ;)
Glücklicher
Win10 ist "Apps & Features" .. aber das ist wahrscheinlich offensichtlich
schlank
Ok, glaub mir nicht. Bitte stellen Sie dies als Meta-Frage, ob die Bearbeitung legitim ist oder nicht. Er hat nicht nur Ihre Antwort formatiert, sondern auch unerwünschte Informationen entfernt, die für die Antwort nicht erforderlich sind. Es heißt Mäßigung. Und Leute mit hohen Wiederholungszahlen bereinigen die Website im Allgemeinen, indem sie moderieren und Beiträge leisten. Deshalb habe ich Ihnen vorgeschlagen, das Hilfezentrum aufzusuchen. Aber Sie wollen nur streiten, anstatt Wissen zu erlangen. Viel Glück.
Glücklicher
Ja, eigentlich bin ich daran interessiert, das Wissen zu teilen und nicht die Arbeit und das Predigen von jemandem zu beanspruchen. Ich bin auch kein blinder Anhänger von hohen Wiederholungen.
Devendra Vaja
Während wir die Befehlszeile aktivieren, werden Sie nach dem Anwendungspfad gefragt, der zum Herunterladen erforderlich ist. Pfad: osdn.net/projects/tortoisesvn/storage/1.12.0/Application/…
Amit Joshi
27

Um die Befehlsunterstützung zu verwenden, sollten Sie die folgenden Schritte ausführen:

  1. Pfad in Umgebungsvariablen definieren:

    • Öffnen Sie ' Systemeigenschaften '.
    • Klicken Sie auf der Registerkarte " Erweitert " auf die Schaltfläche " Umgebungsvariablen "
    • im Bereich ‚ Systemvariablen ‘ die Option ‚ Pfad ‘ und klicken Sie auf ‚ bearbeiten
    • Fügen Sie den Variablenwert mit dem Pfad zur TortoiseProc.exe- Datei hinzu, zum Beispiel:

      C: \ Programme \ TortoiseSVN \ bin

  2. Da Sie TortoiseProc registriert haben , können Sie es gemäß der TortoiseSVN- Dokumentation verwenden .

    Beispiele:

    TortoiseProc.exe / command: commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt "/ logmsg:" test log message "/ closeonend: 0

    TortoiseProc.exe / Befehl: Update / Pfad: "c: \ svn_wc \" / closeonend: 0

    TortoiseProc.exe / Befehl: log /path:"c:\svn_wc\file1.txt "/ startrev: 50 / endrev: 60 / closeonend: 0

PS Um einen Anzeigenamen wie 'svn' anstelle von 'TortoiseProc' zu verwenden, platzieren Sie die Datei 'svn.bat' im Verzeichnis von 'TortoiseProc.exe'. Es gibt ein Beispiel für svn.bat:

TortoiseProc.exe %1 %2 %3
Hexenmeister
quelle
Das Hauptproblem ist nicht der Name der ausführbaren Datei (und wie man sie findet), sondern die völlig andere Befehlszeilensyntax. Siehe meine Antwort, die über mein tsvnProgramm berichtet (das zum Zeitpunkt der Antwort von Warlock noch nicht existierte). In neueren Windows-Versionen können alle Argumente als %*(anstelle von %1 %2 %3...) angegeben werden.
Tobias
10

Um svn zu aktivieren, führen Sie das TortoiseSVN-Installationsprogramm erneut aus, wählen Sie "Ändern" (Ermöglicht Benutzern das Ändern der Art und Weise, wie Funktionen installiert werden) und installieren Sie "Befehlszeilen-Client-Tools".

Kiki
quelle
für diejenigen unter Ihnen, die sich fragen, wo die Option "Ändern" ist - versuchen Sie, Tortoise SVN neu zu installieren
Maya
@maya Wenn Sie es bereits installiert haben, versuchen Sie nicht, es zu deinstallieren und erneut zu installieren. Gehen Sie zur Control Panel\Programs\Programs and FeaturesSuche nach Tortoise SVN und klicken ChangeSie auf und dann auf Modify.
Glück
9

Meine Lösung bestand darin, mit DOSKEY einige Aliase für die Befehle einzurichten, die ich am häufigsten verwende:

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" bietet Tipps zum Einrichten einer .cmd-Datei, die jedes Mal ausgeführt wird, wenn Sie die Eingabeaufforderung wie eine. * RC-Datei unter Unix öffnen.

SeanH
quelle
Toll! Dies ist die einzige Antwort, die TortoiseSVN svnüber die Befehlszeile aufruft, nicht gewöhnlich .
Warlike Schimpanse
4

Sie können sowohl TortoiseSVN als auch die Apache Subversion-Befehlszeilentools installieren. Normalerweise installiere ich die Apache SVN-Tools von der VisualSVN-Download-Site: https://www.visualsvn.com/downloads/

Platzieren Sie nach der Installation den Subversion \ bin in Ihrem festgelegten Pfad. Dann können Sie TortoiseSVN verwenden, wenn Sie die GUI verwenden möchten, und Sie haben die richtigen SVN-Befehlszeilentools, die Sie über die Befehlszeile verwenden können.

David
quelle
3

Es gibt eine Verwirrung, die dazu führt, dass viele TortoiseSVN-Benutzer die falschen Befehlszeilentools verwenden, wenn sie tatsächlich nach einem svn.exeBefehlszeilenclient suchen .

Was soll ich tun oder kann TortoiseSVN nicht über die Befehlszeile verwendet werden?

svn.exe

Wenn Sie Subversion-Befehle an der Eingabeaufforderung ausführen möchten, sollten Sie den svn.exeBefehlszeilenclient ausführen . TortoiseSVN 1.6.x und ältere Versionen enthielten keine SVN-Befehlszeilentools, moderne Versionen jedoch.

Wenn Sie SVN-Befehlszeilentools erhalten möchten, ohne TortoiseSVN installieren zu müssen, überprüfen Sie die Seite mit den SVN-Binärverteilungen oder laden Sie einfach die neueste Version von der VisualSVN-Downloadseite herunter .

Wenn auf Ihrem System SVN-Befehlszeilentools installiert sind, der Fehler jedoch weiterhin angezeigt wird 'svn' is not recognized as an internal or external command, sollten Sie die %PATH%Umgebungsvariable überprüfen . %PATH%muss den Pfad zum SVN-Tools-Verzeichnis enthalten, zC:\Program Files (x86)\VisualSVN\bin .

TortoiseProc.exe

Abgesehen davon svn.exewird TortoiseSVN mitgeliefert TortoiseProc.exe, das über die Eingabeaufforderung aufgerufen werden kann. In den meisten Fällen müssen Sie nicht brauchen , um dieses Tool zu verwenden, da es nur für die GUI - Automatisierung verwendet werden soll. TortoiseProc.exeist kein Ersatz für den SVN-Befehlszeilenclient.

bahrep
quelle
2

Wie Joey betonte, verfügt TortoiseSVN über eine eigene Befehlszeilensyntax. Leider ist es ziemlich hässlich, wenn Sie an svnBefehle gewöhnt sind, und es ignoriert das aktuelle Arbeitsverzeichnis, daher ist es nicht sehr brauchbar - außer für Skripte.

Ich habe ein kleines Python-Programm ( tsvn) erstellt, das die svnBefehlszeilensyntax so genau wie möglich nachahmt und TortoiseSVN entsprechend aufruft. Daher wird der Unterschied zwischen dem Aufrufen der normalen Befehlszeilentools und dem Aufrufen von TortoiseSVN zu tBeginn auf einen kleinen Buchstaben reduziert .

Mein tsvnProgramm ist noch nicht vollständig, aber bereits nützlich. Es kann im Cheeseshop gefunden werden ( https://pypi.python.org/pypi/tsvn/ )

Tobias
quelle
Für diejenigen, die nicht mit Python vertraut sind: Sie benötigen einen aktuellen Python 2.x-Interpreter. Wenn Sie easy_installoder haben pip install, geben Sie einfach an tsvn; Andernfalls können Sie den Tarball herunterladen und extrahieren und das enthaltene setup.pyInstallationsskript ausführen . Da es interpretiert wird, können Sie es im Detail überprüfen ;-)
Tobias
2

Nach einiger Zeit habe ich diese Problemumgehung verwendet ...

(in der .bat-Datei)

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

start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH%
Jorgesimoes
quelle
2

Meine Lösung zum Abrufen von SVN-Befehlen bestand darin, EXE- und DLL-Dateien aus dem TortoiseSVN-Verzeichnis zu kopieren und in den Ordner system32 einzufügen.

Sie können den Befehl auch über das TortoiseSVN-Verzeichnis ausführen und jedem Befehl den Pfad des Arbeitsverzeichnisses hinzufügen. Beispielsweise:

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

Das Hinzufügen des Bin zum Pfad sollte funktionieren, ohne die Dateien zu duplizieren, aber es hat bei mir nicht funktioniert.

KC ein EE
quelle
Dieser Ansatz funktioniert nicht, zeigt immer noch'svn' is not recognized as an internal or external command
Suraj M
0

Nach Auswahl von "SVN-Befehlszeilentools" sieht es folgendermaßen aus:

Geben Sie hier die Bildbeschreibung ein

Alvin567
quelle
5
Dies ist das gewünschte Ergebnis, diese Antwort sagt jedoch nicht aus, wie dies tatsächlich erreicht werden kann.
BogdanBiv