シェルスクリプトで実行されたときにsvnが私の資格情報を使用しないのはなぜですか?

シェルスクリプトで実行されたときにsvnが私の資格情報を使用しないのはなぜですか?

私は異なるsvnリポジトリの別々の作業コピーである12のディレクトリコレクションを持っています。それらは私のすべてのコンピュータで同じように構成されているので、いつでもどのコンピュータでも作業できます。これを行う人は私だけです。他の人はそれを使用せず、内部使用であるため、すべて同じ資格情報を使用します。すべての作業コピーはsvn --username=aaa --password=bbb co http://xxxx/svn/yyyy .各コンピュータに作成されます。

私はほとんどの時間これらのタスクを実行し、定期的にすべてのタスクを繰り返し、それぞれでタスクを実行するシェルスクリプトを呼び出しますsvn upsvn ci -m "stuff"

これはすべてのコンピュータのLinux Mint 19で動作しますが(以前のバージョンでは長年にわたってうまく機能しました)、1台のコンピュータ(HP Envyノートブック)では、スクリプトはすべてのコンピュータで同じエラーを返します(名前がブロックされています)。

svn: E170013: Unable to connect to a repository at URL 'http://xxxx/svn/yyyy'
svn: E215004: No more credentials or we tried too many times.
Authentication failed

ただし、svn up機能するディレクトリで手動でコマンドを実行すると(資格情報がわかっている)、スクリプトを実行すると正常に機能し、すべてが同期されます。

キーチェーンの内容に関するヒントを取得できませんでした。キーチェーンが使用されるという事実も認識されませんでした。スクリプトは他のすべてのコンピュータで手動介入なしで動作するため、この特定のコンピュータで動作しないようにするには、どこを探すべきかを教えてください。

ベストアンサー1

ミントはよくわかりませんが、少なくとも2つを確認します。

  • 実行中のユーザーと同じユーザーでスクリプトが実行されていますか?svn up
  • スクリプトは、ユーザーの介入や試行回数なしでリポジトリに(技術的に)接続できます(予想結果:1)。

svn up最後の手段としてハードコードされた資格情報を追加することもできます。

おすすめ記事