次の設定があります。
- Win 7Professional64ビット
- CCNet v1.6.7981.1
- msysgit v1.7.9-preview20120201
私たちのGitサーバーは、Ubuntuサーバー64ビットを実行している別のマシンにインストールされています。CCNet Windowsサービスは管理者アカウントで実行され、sshを使用してUbuntugitサーバーにアクセスします。強制ビルドを実行する場合、問題はありません。ソースとビルドを取得することは問題ありません。タイムトリガーで実行すると、次の例外が発生します。
ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation has timed out.
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Git.GitFetch(IIntegrationResult result)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Git.CreateUpateLocalRepository(IIntegrationResult result)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Git.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.MultiSourceControl.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModificationsWithLogging(ISourceControl sc, IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request)
私たちのccnetプロジェクトは複数のgitリポジトリで動作します。サンプル構成は次のようになります。
<sourcecontrol type="multi">
<sourceControls>
<git>
<repository>git@somerepo.git</repository>
<executable>$(gitcmdpath)</executable>
<timeout units="minutes">10</timeout>
</git>
<git>
<repository>git@somerepo2.git</repository>
<executable>$(gitcmdpath)</executable>
<timeout units="minutes">10</timeout>
<workingDirectory>c:\somerepo2</workingDirectory>
</git>
</sourceControls>
</sourcecontrol>
同じリポジトリのセットを利用するいくつかのccnetプロジェクトがあり(ただし、異なるフォルダにチェックアウトされています)、コードが変更されていない場合、それらはすべて同じように失敗します。私はたまたまインターバルトリガーを同じ長さに設定しているので、それらはすべてリポジトリをほぼ同時にチェックしています。これが彼らがタイムアウトする理由でしょうか?また、これをデバッグするためにccnet.logからこれを参照するものが見つかりません。
どんな助けでも歓迎します。