Есть ли другое решение, например «svnbridge»?

Я присоединился к новой команде, которая выбрала tfs 2012 для управления исходным кодом, потому что он обновлен с vss. Но насколько я знаю, subverion нравится большему числу членов команды.

Трудно использовать tfs в этих нескольких ртах, и я считаю, что «SvnBridge» может помочь разработчикам использовать svn-клиент для работы с tfs.

Мне удалось настроить SvnBridge-Server на сервере приложений tfs (iis-header: tfssvn.mydomain.com, iis-port 80). Итак, он может сделать это:

  1. Просматривайте файлы и папки в проводнике, используйте http://tfssvn.mydomain.com/
  2. Просмотрите некоторые папки и файлы в TortoiseSVN, пользователь http://tfssvn.mydomain.com/, НО некоторые папки могут не указан, возможно, он имеет недопустимый символ, например «R & D» и т. д. Родительская папка «R & D» не может быть указана, поэтому все папки и файлы в ней не могут быть перечислены или прочитаны. (Но в исходном репозитории Subversion каталоги имя вроде "R&D" поддерживается. Я тестировал его.)
  3. НЕ МОГУ ПРОВЕРИТЬ. Все папки и файлы не могут быть извлечены с помощью TortoiseSVN или командной строки svn.

SvnBridge(http://svnbridge.codeplex.com/), который я использовал, это новейшая версия v6.2. , выпущенный 12 сентября 2013 года, полгода назад, и последняя проверка 13 октября 2013 года. Много ошибок в «ОБСУЖДЕНИЯХ», я боюсь, что проект остановился.

Я хочу знать, есть ли другие решения, такие как "SvnBridge", которые могут поддерживать использование svn-client на tfs?

Журнал ошибок от SvnBridge Sever:

Time     : 2014/2/18 0:09:59
Message  : The remote server returned an error (404) not found.
User     : my-domain-name
Request  : PROPFIND /!svn/bc/45787/CJG/01_Document HTTP/1.1
<?xml version="1.0" encoding="utf-16"?>
<propfind xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="DAV:">
  <prop>
    <resourcetype xmlns="DAV:" />
    <getcontentlength xmlns="DAV:" />
    <deadprop-count xmlns="http://subversion.tigris.org/xmlns/dav/" />
    <version-name xmlns="DAV:" />
    <creationdate xmlns="DAV:" />
    <creator-displayname xmlns="DAV:" />
  </prop>
</propfind>

Exception:
   System.Net.WebException: The remote server returned an error (404) not found.
   at System.Net.HttpWebRequest.GetResponse()
   at CodePlex.TfsLibrary.ObjectModel.WebTransferService.DownloadBytes(String url, ICredentials credentials)
   at SvnBridge.Infrastructure.FileRepository.GetFile(ItemMetaData item, Guid repositoryUuid)
   at SvnBridge.SourceControl.TFSSourceControlProvider.ReadFile(ItemMetaData item)
   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.ReadFile(ItemMetaData item)
   at SvnBridge.Nodes.FileNode.GetContentLength()
   at SvnBridge.Nodes.FileNode.GetProperty(RequestHandlerBase handler, XmlElement property)
   at SvnBridge.Nodes.BcFileNode.GetProperty(RequestHandlerBase handler, XmlElement property)
   at SvnBridge.Handlers.PropFindHandler.WriteProperties(INode node, List`1 properties, TextWriter output, Boolean isFolder)
   at SvnBridge.Handlers.PropFindHandler.WriteBcResponse(TFSSourceControlProvider sourceControlProvider, String requestPath, String depthHeader, PropData data, Stream outputStream)
   at SvnBridge.Handlers.PropFindHandler.HandleProp(TFSSourceControlProvider sourceControlProvider, String requestPath, String depthHeader, String labelHeader, PropData data, Stream outputStream)
   at SvnBridge.Handlers.PropFindHandler.Handle(IHttpContext context, TFSSourceControlProvider sourceControlProvider)
   at SvnBridge.Handlers.RequestHandlerBase.Handle(IHttpContext context, IPathParser pathParser, NetworkCredential credentials)
   at SvnBridge.Net.HttpContextDispatcher.Dispatch(IHttpContext connection)
   at SvnBridgeServer.SvnBridgeHttpHandler.ProcessRequest(HttpContext context)

Stack Trace:
   at System.Net.HttpWebRequest.GetResponse()
   at CodePlex.TfsLibrary.ObjectModel.WebTransferService.DownloadBytes(String url, ICredentials credentials)
   at SvnBridge.Infrastructure.FileRepository.GetFile(ItemMetaData item, Guid repositoryUuid)
   at SvnBridge.SourceControl.TFSSourceControlProvider.ReadFile(ItemMetaData item)
   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.ReadFile(ItemMetaData item)
   at SvnBridge.Nodes.FileNode.GetContentLength()
   at SvnBridge.Nodes.FileNode.GetProperty(RequestHandlerBase handler, XmlElement property)
   at SvnBridge.Nodes.BcFileNode.GetProperty(RequestHandlerBase handler, XmlElement property)
   at SvnBridge.Handlers.PropFindHandler.WriteProperties(INode node, List`1 properties, TextWriter output, Boolean isFolder)
   at SvnBridge.Handlers.PropFindHandler.WriteBcResponse(TFSSourceControlProvider sourceControlProvider, String requestPath, String depthHeader, PropData data, Stream outputStream)
   at SvnBridge.Handlers.PropFindHandler.HandleProp(TFSSourceControlProvider sourceControlProvider, String requestPath, String depthHeader, String labelHeader, PropData data, Stream outputStream)
   at SvnBridge.Handlers.PropFindHandler.Handle(IHttpContext context, TFSSourceControlProvider sourceControlProvider)
   at SvnBridge.Handlers.RequestHandlerBase.Handle(IHttpContext context, IPathParser pathParser, NetworkCredential credentials)
   at SvnBridge.Net.HttpContextDispatcher.Dispatch(IHttpContext connection)
   at SvnBridgeServer.SvnBridgeHttpHandler.ProcessRequest(HttpContext context)

Headers:

Transfer-Encoding: chunked
Content-Type: text/xml
Accept-Encoding: gzip
Authorization: Basic d2FuZG9uZVxyeWFuemh1OjEyMzQ1Ng==
Host: wddevsvr01
User-Agent: SVN/1.8.5 (x64-microsoft-windows) serf/1.3.2 TortoiseSVN-1.8.4.24972
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth
DAV: http://subversion.tigris.org/xmlns/dav/svn/mergeinfo
DAV: http://subversion.tigris.org/xmlns/dav/svn/log-revprops
Depth: 1

person workingbird    schedule 17.02.2014    source источник
comment
Это не ответ, но локальные рабочие пространства TFS 2012 — это способ Subversion для работы с TFS.   -  person DaveShaw    schedule 17.02.2014
comment
Я исправил это исключение. В web.config SvnBridge-Server TfsUrl должен заканчиваться на /, например ‹add key=TfsUrl value=localhost:9090/tfs /›   -  person workingbird    schedule 20.02.2014
comment
Пожалуйста, проверьте это stackoverflow.com/questions/24884195/   -  person variable    schedule 22.07.2014