4

私は SVN 外部を使用していくつかのものを含めるプロジェクトを持っています (実際には MSBuild コミュニティ タスクですが、それは接線です)。外部リポジトリにはユーザー名「guest」が必要ですが、パスワードは必要ありません。

externals プロパティを設定しましたが、これは SVN Update をローカルで実行するときに完全に機能します。問題は、私の TeamCity 継続的インテグレーション ビルドが実行されるときに発生します。TeamCity は、ユーザー名がわからないため、外部でソースとチョークをチェックアウトしようとします。

外部を TeamCity の別の SVN ルートとして定義しようとしましたが、それは機能しないため、解決策ではないと思います。

では、どうすればこれを機能させることができますか?外部 SVN リポジトリにログインする必要があることを TeamCity に知らせるにはどうすればよいですか?

4

5 に答える 5

2

TeamCity は、SVN クライアントからキャッシュされた認証情報を使用して、外部にアクセスします。コマンドラインクライアントからリモートサーバーにアクセスし、資格情報をローカルにキャッシュし、TeamCity にそれらを使用させる以外に、外部認証情報を指定する方法はありません (TeamCity SVN 設定には、保存された SVN 設定を使用するかどうかのチェックボックスがあります)。

于 2009-08-24T09:34:11.280 に答える
2

認証情報は、プログラムを実行しているユーザーのローカルの構成ファイルに保存されます。または、少なくとも、それを行うように構成できます。

TeamCity の Agent プログラムは、マシンにログインしているユーザーとは別のユーザーで実行されているに違いありません。その場合は、同じユーザーでマシンにログインしてsvn checkoutから、一時ディレクトリにログインして、ユーザー名とパスワードを入力してください。これはキャッシュされるため、TeamCity が同じユーザーで SVN を実行する場合、その情報を再利用する必要があります。

于 2009-08-08T14:24:42.507 に答える
1

TeamCity に固有のものではありませんが、svn:externalsリポジトリをチェックアウトするときに使用するユーザー名を指定する必要がある場合:

プロパティではsvn:externals、ユーザー名を指定しないでください:

the_vendor_dir     svn+ssh://hostname/path/to/repo

デフォルトでは、チェックアウトは現在のユーザーのユーザー名を使用します。別のユーザー名を使用するには:

~/.subversion/config:
[tunnels]
ssh = $SVN_SSH ssh -ljdoe

これにより、Subversion は、ユーザー名を指定していないトンネルjdoeのユーザー名として使用するようになります。svn+ssh

Subversion レベルでトンネルを変更する代わりにsvn+ssh、SSH レベルで変更することもできます。

~/.ssh/config:
Host svn.example.com
   User jdoe

上記のStefanの回答は私にとってはうまくいきませんでした.設定はそのファイルに文書化されていない~/.subversion/serversため、うまくいかないようです.username

于 2013-11-11T05:00:37.503 に答える