svnリポジトリからいくつかのコードを取得するビルドプロセスを自動化したいと思います。サーバー証明書は自動的に信頼されません。
試したがうまくいかなかったもの:
svn checkout --non-interactive --trust-server-cert --username name --password password --no-auth-cache -r revision https://server.address/trunk/
明らかにする
svn: E230001: Server SSL certificate verification failed: certificate has expired, issuer is not trusted
echo "t" | svn checkout --username name --password password --no-auth-cache -r revision https://server.address/trunk/
同じ結果につながる
svn: E230001: Server SSL certificate verification failed: certificate has expired, issuer is not trusted
ただし、使用時
svn checkout --username name --password password --no-auth-cache -r revision https://server.address/trunk/
その後、ダイアログボックスが表示され、(R)eject or accept (t)emporarily?
「t」を押すとソースがインポートされます。
特に、手動の方法とecho "t"
方法は実際には同じでなければならないので混乱します。これについての説明があるか、考えられる解決策を知っている人はいますか?
ベストアンサー1
ユーザー入力を要求する前にストリームがフラッシュされ、指定された文字列が削除されるため、入力がecho "t"
無視される可能性が高くなります。この動作は、不要な入力によって何かが破損したり元に戻せない操作を引き起こす可能性がある重要な問題で非常に一般的です。これを確認するために使用できます。svn
echo
strace
Dalvenjiaで使用されているソリューションがexpect
機能する可能性があり(技術的に競合状態がまだ存在していても)、フラッシュが通過するのを待つ迅速で汚れた方法を試すことができます。
{sleep 3; echo "t"; } | svn checkout ...