【问题标题】:TFS 2010 gated check-in using TortoiseSvn over SvnBridge使用 TortoiseSvn over SvnBridge 的 TFS 2010 门控签入
【发布时间】:2011-09-23 22:16:44
【问题描述】:

我有上面标题中的配置。我正在使用 TFS 门控签入功能,如果我使用 TFS 工具签入我的更改,该功能可以正常工作。

回顾我对其工作方式的理解:

我的更改被门控签入拦截并放入搁置集中。搁置集由构建服务器拉下,构建,单元测试运行,并在签入注释末尾附加 NO CI 签入。完成所有操作后,将出现协调工作区的提示。

使用 TortoiseSvn:

只要我没有设置门控签入,我就可以提交代码和更新代码。

设置门控签入后,TFS 服务器发回 500 错误(请参阅下面的异常),并且 tortoiseSvn 客户端显示下面标记的错误,尽管签入过程仍在继续。构建服务器可以毫无问题地构建、运行测试和提交代码,但这很烦人,并且很难说服其他开发人员使用,因为您在提交时收到错误,然后必须对代码执行更新才能获得构建服务器实际提交的更改。

感谢您的任何想法或帮助。

TortoiseSvn 错误

错误:提交失败(详情如下):
错误:服务器发送了意外的返回值(500 内部服务器错误)以响应
错误:“/mil-tfsprd-01/Inst%20Trading%20Support/Source/Main/ODS/Eliminator/Eliminator

的 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)

【问题讨论】:

  • 您使用的是哪个版本的 TurtoiseSvn,它是否正式支持 TFS2010?
  • 我使用的 SvnBridge 版本(2010 年 12 月 30 日 v6)支持 TFS 2010。我使用的 TortoiseSvn 版本是 1.6.16,但唯一的兼容性问题应该是与 SvnBridge 的兼容性问题,如果自 TortoiseSvn 是向 SvnBridge 发送请求,然后将它们发送到 TFS。

标签: tfs tortoisesvn checkin svnbridge


【解决方案1】:

SvnBridge 不支持门控签入 - 正如您所指出的,您将退回到这种行为。

如果您只使用 SvnBridge for Tortoise,您可能需要检查 TFS 与 Windows 资源管理器的集成,它提供对 TFS 的本机访问,而不是通过网桥。它在Team Foundation Server Power Tools 中可用。

【讨论】:

  • 是否在任何地方都记录了缺乏支持?我更喜欢使用 TortoiseSvn,如果我可以让它像他们宣传的那样无缝地工作
  • 不是我见过的。值得指出的是,svnbridge 不是由 TFS 团队编写的,它的目标是特别与 codeplex 对话,而不一定是一般的 TFS 服务器。我也没有看到任何关于无缝连接的广告——如果我确实看到这样的广告,我会非常怀疑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 2014-09-09
  • 2012-06-11
  • 2011-07-24
  • 2017-08-07
相关资源
最近更新 更多