Использование TortoiseSVN через командную строку

Я хочу использовать параметры командной строки SVN. Я использую TortoiseSVN, и я запускаю несколько команд, и я получаю следующую ошибку.

'svn' не распознается как внутренняя или внешняя команда

я использовал команду

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

Я думаю, что я должен добавить некоторую переменную среды или что-то еще.

что я должен делать или не могу использовать TortoiseSVN из командной строки?

13 ответов


по умолчанию TortoiseSVN всегда имеет связанный с ним графический интерфейс пользователя. Но в установщике (версии 1.7 и более поздних версий) вы можете выбрать опцию "инструменты клиента командной строки", чтобы вы могли вызывать команды svn (например, svn commit и svn update) из командной строки.

вот скриншот опции "инструменты клиента командной строки" в установщике, вам нужно убедиться, что вы его выбрали:

How-to-install-TortoiseSvn-CommandLineTools


TortoiseSVN имеет интерфейс командной строки, который может использоваться для автоматизации GUI TortoiseSVN, и он отличается от обычного Subversion.

вы можете найти информацию о параметрах командной строки TortoiseSVN в документации: Приложение D. Автоматизация TortoiseSVN. Основная программа для работы здесь -TortoiseProc.exe.

но заметка в значительной степени наверху там уже говорит:

помните, что TortoiseSVN-это клиент GUI, и в этом руководстве по автоматизации показано, как заставить диалоги TortoiseSVN отображаться для сбора пользовательского ввода. Если вы хотите написать сценарий, который не требует ввода, вы должны использовать официальный клиент командной строки Subversion.

другой вариант-установить двоичные файлы Subversion. Слик СВН - хорошая сборка (и не требует регистрации, такой как Collabnet). Последние версии TortoiseSVN также включают клиент командной строки, Если вы решите его установить.


Если вы уже установили графический интерфейс TortoiseSVN и хотите узнать, как перейти на инструменты командной строки, Вот шаги...

  1. перейдите в Панель управления Windows → (Windows 7+)
  2. найдите TortoiseSVN и нажмите на него.
  3. выберите "Изменить" из доступных вариантов.
  4. обратитесь к этому изображению для дальнейшего лестница.

    TortoiseSVN Command Line Enable

  5. после завершения клиентских средств командной строки, откройте окно командной строки и введите svn help чтобы проверить успешную установку.


чтобы использовать поддержку команд, выполните следующие действия:

  1. определить путь в переменных среды:

    • открыть 'Свойства Системы';
    • на вкладке 'дополнительно' нажмите на 'Переменные Среды'
    • в разделе 'системные переменные 'select'путь 'option and click'редактировать'
    • добавить значение переменной с путем к TortoiseProc.exe, например:

      C:\Program файлы\TortoiseSVN\bin

  2. Так как вы зарегистрировались TortoiseProc, вы можете использовать его в соответствии с TortoiseSVN документация.

    примеры:

    TortoiseProc.exe / команда: commit /путь:"c:\svn_wc\file1.txt*c:\svn_wc\file2 - ... формат txt" / logmsg: "сообщение журнала тестирования" / closeonend: 0

    TortoiseProc.exe / command: обновление / путь:"c:\svn_wc \" / closeonend: 0

    TortoiseProc.exe / command: log / path:"c:\svn_wc\file1 - ... формат txt" /startrev:50 /endrev:60 /closeonend:0

P.S. Чтобы использовать дружественное имя, например " svn "вместо " TortoiseProc", поместите " svn.bat 'файл в каталоге' TortoiseProc.exe. Есть пример svn.летучая мышь:

TortoiseProc.exe %1 %2 %3

чтобы включить svn снова запустить программу установки TortoiseSVN, выберите " Изменить "(позволяет пользователям изменять способ установки компонентов) и установите"клиентские средства командной строки".


моим решением было использовать DOSKEY чтобы настроить некоторые псевдонимы для команд, которые я использую больше всего:

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" для советов о том, как настроить .cmd-файл, который запускается каждый раз, когда вы открываете командную строку.* rc-файл в Unix.


вы можете установить как TortoiseSVN, так и инструменты командной строки Apache Subversion. Обычно я устанавливаю инструменты Apache SVN с сайта загрузки VisualSVN:https://www.visualsvn.com/downloads/

после установки поместите Subversion\bin в заданный путь. Затем вы сможете использовать TortoiseSVN, когда захотите использовать GUI, и у вас есть соответствующие инструменты командной строки SVN для использования из командной строки.


как указал Джоуи, TortoiseSVN имеет собственный синтаксис командной строки. К сожалению, это довольно уродливо, если вы привыкли svn команды, и он игнорирует текущий рабочий каталог, поэтому он не очень удобен - кроме сценариев.

Я создал небольшую программу на Python (tsvn), которая имитирует svn синтаксис командной строки как можно ближе и вызывает TortoiseSVN соответственно. Таким образом, разница между вызовом обычных инструментов командной строки и вызовом TortoiseSVN сводится к маленькой букве t в начале.

мой tsvn программа еще не завершена, но уже полезные. Он может быть найден в cheeseshop (https://pypi.python.org/pypi/tsvn/)


через некоторое время я использовал этот обходной путь...

(at the .bat file)

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

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

моим исправлением для получения команд SVN было копирование .exe и .dll-файлы из каталога TortoiseSVN и вставка их в папку system32.

вы также можете выполнить команду из каталога TortoiseSVN и добавить путь рабочего каталога к каждой команде. Например:

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

добавление Бина в путь должно заставить его работать без дублирования файлов, но это не сработало для меня.


существует путаница, которая заставляет многих пользователей TortoiseSVN использовать неправильные инструменты командной строки, когда они на самом деле искали svn.exe клиент командной строки.*

что я должен делать или не могу использовать TortoiseSVN из командной строки?

svn.exe

если вы хотите запустить команды Subversion из командной строки, вы должны запустить svn.exe клиент командной строки. В TortoiseSVN 1.6.x и более старые версии не включал средства командной строки SVN,но современные версии.

если вы хотите получить инструменты командной строки SVN без установки TortoiseSVN, проверьте SVN бинарные дистрибутивы страница или просто скачать последнюю версию Страница загрузки VisualSVN.

если у вас есть инструменты командной строки SVN, установленные в вашей системе, но все равно получите ошибку 'svn' is not recognized as an internal or external command, вы должны проверить %PATH% переменные среды. %PATH% должны включать путь к каталогу инструментов SVN, например C:\Program Files (x86)\VisualSVN\bin.

TortoiseProc.exe

помимо svn.exe, TortoiseSVN поставляется с TortoiseProc.exe это можно вызвать из командной строки. В большинстве случаев, вы делаете не нужно использовать этот инструмент, потому что он должен использоваться только для автоматизации GUI. TortoiseProc.exe не является заменой для клиента командной строки SVN.


после выбора "инструменты командной строки SVN" он станет таким:

Enter image description here


У меня уже были установлены инструменты командной строки, но все же я не смог исправить эту ошибку.

  • я перезапустил Android Studio, но это не решило мою проблему

затем я понял, что после установки SVN я не перезапустил компьютер, и это было главной проблемой.