1

上記のタイトルの構成があります。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)
4

1 に答える 1

1

SvnBridgeはゲートチェックインをサポートしていません-ご存知のように、この動作にフォールバックします。

TortoiseにSvnBridgeのみを使用している場合は、代わりにWindowsエクスプローラーへのTFS統合を確認することをお勧めします。これにより、ブリッジを介さずにTFSへのネイティブアクセスが提供されます。Team Foundation ServerPowerToolsで利用できます

于 2011-09-23T14:16:44.000 に答える