Как использовать svn + ssh с Tortoise SVN из командной строки
У меня возникли проблемы с проверкой репо с использованием следующего синтаксиса на рабочей станции Windows 7 с помощью TortoiseSvn:
svn co svn+ssh://[email protected]/repo .
Что я сделал, чтобы проверить эту проблему:
- Изменены сетевые настройки TortoiseSvn, чтобы указать на.. \TortoisePlink.exe
- Успешно установлено соединение ssh с целевой машиной без проблем
- Успешно проверил репозитории с рабочих станций под управлением Ubuntu с OpenSsh
Когда я пытаюсь выполнить вышеупомянутый синтаксис из командной строки на рабочей станции Windows 7, я получаю сообщение об ошибке:
svn: E720087: Unable to connect to a repository at URL 'svn+ssh:///[email protected]/repo'
svn: E720087: Can't create tunnel:The parameter is incorrect.
Интересно, что если я использую черепаху gui для перехода на репо, я могу успешно открыть и проверить репо. Но мне нужно сделать это из командной строки для создания сценариев.
Любые предложения?
Ответы
Ответ 1
Чтобы svn + ssh работал с Tortoise, убедитесь, что %SVN_SSH%
установлен на ваш ssh-клиент (возможно, plink.exe из Tortoise или Putty), и путь должен быть написан либо с помощью косой черты /
, либо с экранированными обратными косыми чертами \\
.
Попробуйте установить %SVN_SSH%
с абсолютным путем plink, избегая обратных косых черт, что-то вроде C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe
вместо ..\TortoisePlink.exe
Ответ 2
- Подключитесь к серверу, используя Plink, вручную. Определите необходимые и правильные (для вас) параметры запуска plink.
- Добавьте эту строку (используйте tortoiseplink как windowless-plink) в
%APPDATA%config
файл, [tunnels]
раздел
Ответ 3
Также оказывается, что строка в разделе Tunnels конфигурационного файла чувствительна к регистру.
Например:
sh = $SVN_SSH "C:/path/putty/plink.exe" -2 -C -i "C:/path/username/serversvn.ppk"
может работать
и
sh = $SVN_SSH "C:/path/PuTTY/plink.exe" -2 -C -i "C:/path/username/serversvn.ppk"
не будет работать