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

254

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

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

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

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

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

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

Ночной Уокер
источник
4
Я бы предложил Слик подрывной деятельности . А после установки просто добавьте его каталог bin к своему пути. -bhups
bhups
3
TortoiseSVN, вероятно, наиболее часто используемый SVN-клиент Windows GUI, и он тщательно задокументирован. Я бы не назвал это псевдоклиентом только потому, что это не эталонная реализация командной строки.
Джои
18
Последняя версия TortoiseSVN (1.7.1 этого документа) имеет опцию во время установки для инструментов командной строки. По умолчанию он не включен, но установит стандартные файлы командной строки для svn. Поэтому больше не нужно устанавливать отдельный пакет subversion, такой как Silk.
Ви
1
Просто быстрый FYI, если вы используете Slik svn и получаете эту ошибку: «svn» не распознан ... », возможно, вам придется открыть диалоговое окно« Свойства системы ». В то время как Slik добавляет правильную запись в переменную Path, вам, возможно, придется нажать edit и «ok» (даже если вы не внесли никаких изменений), чтобы включить переменную. По крайней мере, это был мой опыт использования Windows Vista. После того, как я это сделал, Windows распознала изменение пути, и моя команда svn была распознана.
Джесси
1
Я добавил путь SlikSvn / bin к переменной среды, но все еще получаю эту ошибку ...
Lion789

Ответы:

464

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

Вот скриншот опции «инструменты клиента командной строки» в установщике, вам необходимо убедиться, что вы выбрали ее:

Как к установке-TortoiseSVN-CommandLineTools

AnneTheAgile
источник
52
Лично я предпочитаю этот ответ принятому: никаких дополнительных установок и полный доступ к стандартной командной строке SVN.
Haroldo_OK
2
Также имеется дополнительное преимущество, заключающееся в том, что версии инструментов командной строки синхронизируются с версией TortoiseSVN.
the_mandrill
4
... что означает более подробно: формат рабочего каталога Subversion несколько раз менялся, например, в версиях 1.7 и 1.8. Клиент 1.7 не будет использовать более старый рабочий каталог, если он не svn upgraded; после этого клиент 1.6 больше не сможет его использовать.
Тобиас
38
Как подсказка, если у вас уже установлена ​​Tortoise, нет необходимости переустанавливать. Вы можете просто открыть оригинальный MSI-файл установщика, и вместо «Удалить» вы можете выбрать «Изменить». Он просто обновит вашу текущую установку Tortoise, ничего не испортив.
Тревор
5
В качестве подсказки, если у вас уже установлена ​​Tortoise и у вас нет MSI-файла - вы можете перейти в Панель управления -> Программы и компоненты, а затем выбрать TortoiseSVN -> Изменить.
Цви
131

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

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

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

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

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

детеныш
источник
2
Просто чтобы добавить к этому - убедитесь, что черепаха находится на вашем пути. Иначе ничего не получится.
Томас Оуэнс
2
Исходя из этого ответа, я думаю, что лучше всего было бы установить реальный клиент командной строки SVN, а не изучать второй интерфейс командной строки. Я не знаю, как это сделать, хотя.
jprete
2
Томас: По умолчанию и TortoiseSVN, и Slik SVN изменят путь соответствующим образом.
Джои
23
Это решение просто устарело, установщик TortosieSVN теперь включает в себя инструменты командной строки.
Джош
1
Вам может потребоваться перезагрузка после установки, чтобы вы получили изменение в переменной окружения PATH.
Оливер Бок
91

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

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

    Включение TortoiseSVN из командной строки

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

Девендра Вая
источник
Ваш ответ не был отформатирован уже. И это была нежелательная информация. Он правильно отформатировал и отредактировал ваш ответ. Пожалуйста, прочитайте справочный центр для получения дополнительной информации. ;)
Счастливое
Win10 - это «Приложения и функции» ... но это, вероятно, очевидно
тонкий
Хорошо, не верь мне. Пожалуйста, задайте это как вопрос в мета, законно ли редактирование или нет. Он не только отформатировал ваш ответ, но и удалил нежелательную информацию, которая не требуется для ответа. Это называется модерацией. А люди с высоким числом повторений обычно очищают сайт, модерируя и внося свой вклад, поэтому я предложил вам поискать в справочном центре. Но вы просто хотите спорить, а не получать знания. Удачи. »
Счастливчик,
Да, на самом деле я заинтересован в том, чтобы делиться знаниями, а не претендовать на чью-то работу и проповедовать. Также я не слепой последователь высоких повторений.
Девендра Важа
пока мы включаем командную строку, она запрашивает путь приложения, который требуется загрузить. путь: osdn.net/projects/tortoisesvn/storage/1.12.0/Application/…
Амит Джоши
27

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

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

    • откройте « Свойства системы »;
    • на вкладке « Дополнительно » нажмите кнопку « Переменные среды »
    • в разделе « Системные переменные » выберите « Путь » и нажмите « Изменить ».
    • добавьте значение переменной с путем к файлу TortoiseProc.exe , например:

      C: \ Program Files \ TortoiseSVN \ bin

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

    Примеры:

    TortoiseProc.exe / command: commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt "/ logmsg:" тестовое сообщение журнала "/ closeonend: 0

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

    TortoiseProc.exe / команда: log /path:"c:\svn_wc\file1.txt "/ startrev: 50 / endrev: 60 / closeonend: 0

PS Чтобы использовать понятное имя, например «svn» вместо «TortoiseProc», поместите файл «svn.bat» в каталог «TortoiseProc.exe». Вот пример svn.bat:

TortoiseProc.exe %1 %2 %3
Чернокнижник
источник
Основная проблема не в имени исполняемого файла (и как его найти), а в совершенно ином синтаксисе командной строки; см. мой ответ, который рассказывает о моей tsvnпрограмме (которой не было на момент ответа Чернокнижника). Последние версии Windows позволяют указывать все аргументы как %*(а не %1 %2 %3...).
Тобиас
10

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

Kiki
источник
для тех из вас, кому интересно, где находится опция «Изменить» - попробуйте переустановить Tornise SVN
Maya
@maya Если вы уже установили, не пытайтесь удалить и переустановить его. Перейти к Control Panel\Programs\Programs and Featuresпоиску черепаха SVN и нажмите, Changeа затем нажмите Modify.
Счастливчик,
9

Мое решение состояло в том, чтобы использовать 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.

SeanH
источник
Большой! Это единственный ответ, который фактически вызывает TortoiseSVN, не обычный svn, из командной строки.
Воинственный шимпанзе
4

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

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

Дэвид
источник
3

Существует путаница, которая заставляет многих пользователей 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.exeTortoiseSVN поставляется с, TortoiseProc.exeкоторый может быть вызван из командной строки. В большинстве случаев вам не нужно использовать этот инструмент, потому что он должен использоваться только для автоматизации графического интерфейса. TortoiseProc.exeне является заменой клиенту командной строки SVN.

bahrep
источник
2

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

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

Моя tsvnпрограмма еще не завершена, но уже полезна. Его можно найти в магазине cheeseshop ( https://pypi.python.org/pypi/tsvn/ ).

Тобиас
источник
Для тех, кто не знаком с Python: вам нужен недавний интерпретатор Python 2.x. Если у вас есть easy_installили pip installпросто укажите tsvn; в противном случае вы можете скачать и распаковать архив и запустить setup.pyскрипт установки. Поскольку он интерпретируется, вы можете проверить его во всех деталях ;-)
Тобиас
2

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

(в файле .bat)

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

start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH%
jorgesimoes
источник
2

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

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

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

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

KC EE
источник
Этот подход не работает, все еще показывает'svn' is not recognized as an internal or external command
Suraj M
0

После выбора «инструментов командной строки SVN» это будет выглядеть так:

Введите описание изображения здесь

Alvin567
источник
5
Это желаемый результат, однако этот ответ не говорит, как на самом деле добиться этого.
БогданБив