2

日常のリビジョン管理活動にはTortoiseSVNGUIを使用しています。

LinuxマシンのSVNリポジトリに接続してCruiseControl.Netをセットアップしようとしています。なんて悪夢だ!Windowsでsvnコマンドラインを取得してSVNLinuxサーバーに接続するのは、「やりがいのある」ことでした。これですべてうまくいきました。Windowsのコマンドプロンプトから次のように入力できます

svn co svn+ssh://user@server/repos/QTSS 

QTSSリポジトリをWindowsマシンにコピーします。したがって、上記の「svn co」コマンドを使用して、CCNetの作業フォルダーとして使用する場所に完全にチェックアウトしました。 C:\users\build\repos\QTSS

repos / QTSS / trunkフォルダーの下には、それぞれ独自のVS2010ソリューションソースファイルを持つ多くのサブフォルダーがあります。CCNetを使用するために、SparsePointSurfaceという名前のこれらのサブフォルダーの1つにCCNetプロジェクトを構成しました。最終的には、サブフォルダーごとにCCNetプロジェクトを作成します。CCNetを実行すると、次のエラーが発生します。

Source control operation failed: svn: E155000: 'C:\Users\build\repos\QTSS\trunk\SparsePointSurface' is already a working copy for a different URL

Windowsのコマンドプロンプトウィンドウで、そのフォルダーにCDを挿入し、次のように入力します。

svn checkout svn+ssh://user@server/repos/QTSS/trunk/ C:\Users\build\repos\QTSS\trunk\SparsePointSurface --no-auth-cache --non-interactive

これは、CCNetが発行しているのと同じコマンドです。案の定、コマンドプロンプトでCCNetで発生するのと同じエラーが発生します。つまり、これはCCNetではなくSVNの問題です。

このSVNエラーは正確にはどういう意味ですか、どうすれば修正できますか?多くのグーグルにもかかわらず、私はこのエラーの原因と解決策の良い説明を見つけられませんでした。ほとんどの場合、svnスイッチ/マージ操作の問題が発生しますが、それは私がやろうとしていることではありません。

TortoiseSVN GUIでは、ファイルエクスプローラーでSparsePointSurfaceを右クリックし、[SVNチェックアウト]を選択すると正常に動作することに注意してください。

4

2 に答える 2

1

OK私はついに解決策を見つけました。私のccnet.configには、プロジェクト、svn制御ブロック、およびmsbuildタスクがすべて「C:\ Users \ build \ repos \ QTSS \ trunk\SparsePointSurface」を指していることがありました。プロジェクトのWDとsvnコントロールブロックを「C:\ Users \ build \ repos \ QTSS \ trunk \」に変更しました。これは、.svnフォルダーが配置されている場所です。msbuildタスクのWDを.slnファイルの特定の場所に残しました。ついにCCNetでビルドが成功しました。うわー!クリスヘンリーに感謝します。あなたのコメントは私を修正への道に送りました。

于 2013-03-27T16:35:04.220 に答える
0

毎回チェックアウトしている理由は何ですか?

このエラーは通常、SVNレポジトリをすでにSVNの管理下にあるように見えるフォルダにチェックアウトしようとしていることを意味します。少なくとも以前のバージョンのSVNでは、.svnフォルダーを探すことで、フォルダーがSVNの制御下にあることがわかります。

完全なチェックアウトではなく、CruiseControl内で更新を行う必要があるように思われます。オプションで、毎回フルチェックアウトを実行できますが、現在配置されているすべてのファイルを削除する必要があります。

于 2013-03-24T22:37:28.257 に答える