上記のタイトルの構成があります。TFSツールを使用して変更をチェックインすると正常に機能するTFSゲートチェックイン機能を使用しています。
それがどのように機能するかについての私の理解のレビュー:
私の変更は、ゲート付きチェックインによって傍受され、シェルフセットに入れられます。シェルブセットはビルド サーバーによってプルダウンされ、ビルドされ、単体テストが実行され、チェックイン コメントの末尾にCIが追加されていない状態でチェックインされます。すべてが完了すると、ワークスペースを調整するためのプロンプトが表示されます。
TortoiseSvn の使用:
ゲートチェックインを設定していない限り、コードをコミットしてコードを更新できます。
ゲート チェックインが設定されている場合、TFS サーバーは 500 エラーを返し (以下の例外を参照)、tortoiseSvn クライアントは以下のラベルの付いたエラーを表示しますが、チェックイン プロセスは続行されます。ビルド サーバーは問題なくコードをビルドし、テストを実行し、コミットしますが、これは非常に煩わしく、コミット時にエラーが発生し、コードを更新して取得する必要があるため、他の開発者に使用を説得するのは困難です。ビルド サーバーによって実際にコミットされた変更。
アイデアや助けをありがとう。
TortoiseSvn エラー
エラー: コミットに失敗しました (詳細は次のとおりです):
エラー: サーバーはエラーに応答して予期しない戻り値 (500 内部サーバー エラー) を
送信しました: '/mil-tfsprd-01/Inst%20Trading%20Support/Source/Main/ODS/ の MERGE 要求エリミネーター/エリミネーター
SoapException からのスタック トレース
System.Web.Services.Protocols.SoapException: Your check-in has been placed into shelveset Gated_2011-09-22_10.26.49.8403;US\RPieper and submitted for validation by build definition \Inst Trading Support\Eliminator.
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at CodePlex.TfsLibrary.RepositoryWebSvc.Repository.CheckIn(String workspaceName, String ownerName, String[] serverItems, Changeset info, CheckinNotificationInfo checkinNotificationInfo, CheckinOptions checkinOptions, Failure[]& failures)
at CodePlex.TfsLibrary.ObjectModel.SourceControlService.<>c__DisplayClass4.<Commit>b__3()
at CodePlex.TfsLibrary.ObjectModel.SourceControlService.WrapWebException[T](WrapWebExceptionDelegate`1 function)
at CodePlex.TfsLibrary.ObjectModel.SourceControlService.Commit(String tfsUrl, ICredentials credentials, String workspaceName, String comment, IEnumerable`1 serverItems)
at SvnBridge.SourceControl.TFSSourceControlProvider.<>c__DisplayClass18.<MergeActivity>b__17(Activity activity)
at SvnBridge.SourceControl.ActivityRepository.Use(String activityId, Action`1 action)
at SvnBridge.SourceControl.TFSSourceControlProvider.MergeActivity(String activityId)
at SvnBridge.Proxies.RemotingInvocation.Proceed()
at SvnBridge.Proxies.TracingInterceptor.Invoke(IInvocation invocation)
at SvnBridge.Proxies.RemotingInvocation.Proceed()
at SvnBridge.Proxies.RetryOnExceptionsInterceptor`1.Invoke(IInvocation invocation)
at SvnBridge.Proxies.RemotingInvocation.Proceed()
at SvnBridge.Proxies.ProxyFactory.RemotingProxy.Invoke(IMessage msg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at SvnBridge.SourceControl.TFSSourceControlProvider.MergeActivity(String activityId)
at SvnBridge.Handlers.MergeHandler.Handle(IHttpContext context, TFSSourceControlProvider sourceControlProvider)
at SvnBridge.Handlers.RequestHandlerBase.Handle(IHttpContext context, IPathParser pathParser, NetworkCredential credentials)
at SvnBridge.Net.HttpContextDispatcher.Dispatch(IHttpContext connection)
at SvnBridge.Net.Listener.Process(TcpClient tcpClient)
at SvnBridge.Net.Listener.Accept(IAsyncResult asyncResult)