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


253

Я хочу використовувати параметри SVN командного рядка. Я використовую TortoiseSVN, і запускаю кілька команд, і я отримую наступну помилку.

'svn' не розпізнається як внутрішня чи зовнішня команда

Я використав команду

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

Думаю, я повинен додати змінну середовища чи щось інше.

Що робити чи не можна TortoiseSVN використовувати з командного рядка?


4
Я б запропонував живописний підрив . А після встановлення просто додайте до свого каталогу каталог бін. -bhups
bhups

3
TortoiseSVN - це, мабуть, найпоширеніший клієнтський графічний інтерфейс Windows GUN, і це ретельно документовано. Я б не називав це псевдо-клієнтом лише тому, що це не референтна реалізація командного рядка.
Joey

18
В останній версії TortoiseSVN (1.7.1 цього тексту) є можливість під час встановлення інструментів командного рядка. Він не увімкнено за замовчуванням, але він встановить стандартні файли командного рядка для svn. Таким чином, більше немає необхідності встановлювати окремий підривний пакет, як Silk.
ві

1
Просто швидкий FYI, якщо ви використовуєте Slik svn і ви отримуєте цю помилку: "svn" не розпізнається ... ", можливо, доведеться відкрити діалог" Властивості системи ". Незважаючи на те, що Slik додає правильну запис до змінної Path, вам, можливо, доведеться натиснути редагування та "добре" (навіть якщо ви не внесли жодних змін), щоб увімкнути змінну. Принаймні таким був мій досвід використання Windows Vista. Після того як я це зробив, Windows розпізнав зміну в Шлях, і моя команда svn була розпізнана.
Джессі

1
Я додав шлях до SlikSvn / bin до змінної середовища, але все ж отримую цю помилку ...
Lion789,

Відповіді:


463

За замовчуванням TortoiseSVN завжди пов'язаний з ним графічний інтерфейс (графічний інтерфейс користувача). Але на інсталяторі (версії 1.7 та пізнішої версії) ви можете вибрати параметр "інструменти клієнтського рядка клієнта", щоб ви могли викликати команди svn (наприклад, svn фіксація та оновлення svn) з командного рядка.

Ось скріншот параметра "Інструменти клієнтського рядка клієнта" в інсталяторі, вам потрібно переконатися, що ви вибрали його:

Як встановити-TortoiseSvn-CommandLineTools


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 -> Змінити.
zvi

131

TortoiseSVN має інтерфейс командного рядка, який можна використовувати для автоматизації графічного інтерфейсу TortoiseSVN, і він відрізняється від звичайного Subversion.

Інформацію про параметри командного рядка TortoiseSVN можна знайти в документації: Додаток D. Автоматизація TortoiseSVN . Основна програма, з якою тут працювати TortoiseProc.exe.

Але в примітці, що знаходиться вгорі, вже написано:

Пам’ятайте, що TortoiseSVN є клієнтом GUI, і цей посібник з автоматизації показує вам, як зробити діалогові вікна TortoiseSVN для збору даних. Якщо ви хочете написати сценарій, який не потребує введення даних, вам слід скористатися офіційним клієнтом командного рядка Subversion.

Іншим варіантом буде встановлення бінарних файлів Subversion. Slik SVN - це приємна збірка (і не потребує реєстрації, як Collabnet). Останні версії TortoiseSVN також включають клієнт командного рядка, якщо ви вирішите його встановити.


2
Просто до цього додайте - переконайтеся, що Черепаха на вашому шляху. Інакше нічого не вийде.
Томас Оуенс

2
Виходячи з цієї відповіді, я думаю, що найкращим варіантом було б встановити фактичного клієнтського командного рядка SVN, а не вивчити інтерфейс другого командного рядка. Я не знаю, як це зробити.
jprete

2
Томас: За замовчуванням і TortoiseSVN, і Slik SVN змінять шлях відповідно.
Joey

23
Це рішення просто застаріло, інсталятор TortosieSVN тепер включає інструменти командного рядка.
Джош

1
Вам може знадобитися перезавантажити після встановлення, щоб ви отримали зміни до змінної середовища PATH.
Олівер Бок,

91

Якщо ви вже встановили GUI 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: \ Файли програм \ TortoiseSVN \ bin

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

    Приклади:

    TortoiseProc.exe / команда: 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 знову, виберіть "Змінити" (Дозволяє користувачам змінювати спосіб встановлення функцій) та встановлюйте "Клієнтські інструменти командного рядка".


для тих, хто цікавиться, де знаходиться варіант «Змінити» - спробуйте встановити SV Tortoise SVN
май

@maya Якщо ви вже встановили її, не намагайтеся її видалити та перевстановити. Перейдіть на Control Panel\Programs\Programs and Featuresпошук SVN Tortoise SVC і натисніть, 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 зберігається" для порад щодо того, як налаштувати файл .cmd, який запускається кожного разу, коли ви відкриваєте командний рядок, як. * Rc файл в Unix.


Чудово! Це єдина відповідь, яка насправді викликає TortoiseSVN, не звичайну svn, з командного рядка.
Войовничий шимпанзе

4

Можна встановити як інструменти командного рядка TortoiseSVN, так і Averche 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.exe, TortoiseSVN поставляється з тим, TortoiseProc.exeщо можна викликати з командного рядка. У більшості випадків вам не потрібно використовувати цей інструмент, оскільки він повинен використовуватися лише для автоматизації графічного інтерфейсу. TortoiseProc.exeне є заміною клієнта командного рядка SVN.


2

Як вказував Джої, TortoiseSVN має власний синтаксис командного рядка. На жаль, це досить некрасиво, якщо ви звикли до svnкоманд, і він ігнорує поточну робочу директорію, таким чином, він не дуже корисний - за винятком сценаріїв.

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

Моя tsvnпрограма ще не завершена, але вже корисна. Його можна знайти в сиршоті ( 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%

2

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

Ви також можете виконати команду з каталогу TortoiseSVN і додати шлях до робочого каталогу до кожної команди. Наприклад:

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

Додавання біна до контуру повинно змусити його працювати без копіювання файлів, але це не спрацювало для мене.


Такий підхід не працює, все ще показує'svn' is not recognized as an internal or external command
Suraj M

0

Після вибору "інструментів командного рядка SVN" воно стане таким:

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


5
Це бажаний результат, однак ця відповідь не говорить про те, як насправді цього досягти.
BogdanBiv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.