Использование ожидай, чтобы войти в SVN - PullRequest
1 голос
/ 04 марта 2009

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

Проблема здесь в том, что при каждом входе в SVN (даже при оформлении заказа или обновлении) нам необходимо ввести наш пароль. Автоматизация ввода пароля, единственный способ, который я смог найти, - это использовать функцию «Ожидай».

Ожидается ли какой-либо сценарий, который может позаботиться о SVN и scp для обнаружения и передачи пароля в SVN, а затем в SCP?

Я использую следующее:

spawn svn [lindex $argv 0]
expect " password: $"
send "$password\r"
expect { 
    " password: $"    send "$password\r"
    "^At revision "
    "^Updated to revision "
}

Пароль и команду up я передаю из командной строки, но там есть угроза безопасности, если кто-то имеет доступ к истории. Упомянутые ниже ответы не удовлетворяют моим предварительным условиям, также я пока не могу сделать экспорт [некоторые другие проблемы безопасности: - (]

Ответы [ 4 ]

2 голосов
/ 04 марта 2009

Если вы используете протокол svn + ssh для доступа к вашему репозиторию SVN, вы можете использовать SSH-ключи и ssh-agent для управления квитированием, поэтому вам не нужно вводить пароли.

1 голос
/ 04 марта 2009

linuxbashscript.sh

svn up /path/to/local/copy
tar -cf backup.tar /path/to/local/copy
scp backup.tar user@192.1.1.1:/path/on/remote/host

или даже лучший пользовательский экспорт SVN, который исключит все каталоги .svn.

svn export /path/to/repo /path/to/exported
tar -cf backup.tar /path/to/local/copy
scp backup.tar user@192.1.1.1:/path/on/remote/host
0 голосов
/ 22 марта 2009

Если (как предложил Дейв), вы будете использовать Ant, у вас будут следующие задачи:

Вы можете сохранить пароли в отдельном файле свойств, если вы беспокоитесь о безопасности.

0 голосов
/ 04 марта 2009

Лично я бы использовал ANT для выполнения всех этих задач, а затем вы могли бы при необходимости вызвать свой скрипт ant. Ant имеет предварительно сконфигурированные задачи для svn и scp, а также многие другие задачи типа автоматизации сборки.

...