1

SVN にログインし、ソースを更新し、これらを使用して tarball を作成し、それらをリモート ホストに scp する自動スクリプトを使用しようとしています。

ここでの問題は、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

4 に答える 4

2

svn + sshプロトコルを使用してSVNリポジトリにアクセスしている場合は、SSHキーとssh-agentを使用してハンドシェイクを管理できるため、パスワードを使用する必要はありません。

于 2009-03-04T06:43:43.683 に答える
1

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
于 2009-03-04T06:48:55.043 に答える
0

個人的には、ANTを使用してこれらすべてのタスクを実行し、必要に応じてantスクリプトを呼び出すことができます。Antには、svnとscpのタスク、および他の多くのビルド自動化タイプのタスクが事前構成されています。

于 2009-03-04T06:44:38.987 に答える
0

(Dave が提案したように) Ant を使用する場合、次のタスクを自由に実行できます。

セキュリティが心配な場合は、パスワードを別のプロパティ ファイルに保存できます。

于 2009-03-22T08:11:12.837 に答える