2009-03-04 11 views
1

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

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

パスワードを、コマンドまで私は、コマンドラインから渡す、誰かが歴史へのアクセス権を持っている場合、セキュリティ上の脅威がそこにあります。以下の回答は私の前提条件を満たしておらず、私は今では輸出を行うことができません[他のセキュリティ問題:-(]

答えて

1

linuxbashscript.sh

svn up /path/to/local/copy 
tar -cf backup.tar /path/to/local/copy 
scp backup.tar [email protected]:/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 [email protected]:/path/on/remote/host 
1

あなたのSVNにアクセスするためにsvn +あなたがSSH鍵とssh-agentを使ってハンドシェイクを管理するよりも、パスワードを必要としないようにすることができます。

1

個人的に私はANTを使用してこれらの作業をすべて行い、必要に応じてantスクリプトを呼び出すことができます。 SVNとscpのために事前に構成タスクだけでなく、他の多くのビルド自動化タイプのタスク。

1

(Daveが提案のような)場合は、Antのを使用することになり、あなたはあなたの処分で、次のタスクを持っているでしょう:

  • SvnAnt
  • の間にチェックアウト、チェックインとすべてのものを行うには
  • Ant TARそれを
を公開するためにアーカイブに
  • Ant SCPタスクを作成するタスク

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

  • 関連する問題