更新后,TortoiseSVN 1.71和VisualSVN 2.51将无法连接

时间:2011-11-09 05:57:17

标签: svn tortoisesvn visualsvn visualsvn-server

我几天前在同一时间将VisualSVN更新为v2.51,将TortoiseSVN更新为1.7.1。在更新之前,使用subversion工作好几个月。自更新以来,我无法连接到存储库。

操作系统是Win7 Home Premium 64位,安装了Visual Studio Web Developer Express 2010,所有Windows更新都已自动应用,我使用的是apache服务器连接SSL,这与以前的工作方式相同。从VisualSVN浏览存储库也可以正常工作。

为了以简单的方式演示问题,我使用命令提示符会话尝试列出存储库中的文件并获得如下所示的错误:

C:>svn ls "https://robert-pc/svn/Scedule/"  --username xxx --password yyy<br>
svn: E175002: Unable to connect to a repository at URL 'https://robert-pc/svn/Schedule'
svn: E175002: OPTIONS of 'https://robert-pc/svn': Could not resolve hostname 
`https://robert-pc/svn/': No such host is known.
(https://robert-pc)

如果我尝试从Windows资源管理器中使用TortoiseSVN,则会出现同样的错误。 基于2009年11月类似问题的答案,我尝试了以下方法但没有成功:

  • 指定计算机名称中的端口号,例如svn ls https://robert-pc:8443/svn/Schedule/
  • 允许SVN.exe(与VisualSVN一起安装的那个)通过Windows防火墙。

我已经卸载并重新安装了VisualSVN和TortoiseSVN。我没有看到其他人使用VisualSVN v2.51和TortoiseSVN v1.7.1遇到问题。我想知道问题是Windows网络的配置方式。网络是一个简单的本地网络,在Windows 7 Home Premium下配置为工作网络。任何帮助是极大的赞赏。

我可以从命令提示符会话成功ping robert-pc。我可以从IE成功浏览存储库,如下所示:https://robert-pc:8443/svn/
(我从IE获得证书警告,我继续,然后输入用户名和密码。)

4 个答案:

答案 0 :(得分:7)

您的问题不是VisualSVNServer或TSVN,它是用纯英文写的

  

无法解析主机名`https:// robert-pc / svn /':没有这样的主机   已知的。

无法解析主机名表示在投诉连接之前,您必须至少{1}}进入您的Windows

我不知道,robert-pc之前从哪个源解析过,现在谁破坏了它,但你必须恢复旧设置(主机,本地DNS服务器)

答案 1 :(得分:5)

这个问题花了我很多时间,我将在这里描述我最终如何让Subversion再次工作,以防它可以帮助某人。我卸载了VisualServerTortoiseSVN。卸载后,我也删除了一些剩余的配置注册表项和文件:

  • HKEY_CURRENT_USER \ SOFTWARE \ Tigris.org \颠覆 Server \ Global下的子键具有与主机名相关的设置。
  • HKEY_CURRENT_USER \ Software \ TortoiseSVN
  • C:\用户\罗伯特\应用程序数据\漫游\ TortoiseSVN的
  • C:\用户\罗伯特\应用程序数据\漫游\颠覆

我认为真正有用的是在重新安装之前摆脱旧的配置条目。重新安装VisaulSVNTortoiseSVN后,现在可以使用存储库。我希望我确切地知道问题是什么,但我不知道。我怀疑工作目录的SVN数据已损坏,因为我尝试使用TortoiseSVN Relocate命令重新定位工作目录,以便在收到错误时定义主机名连接到主机(BIG MISTAKE)。

其余的提供可能不感兴趣的细节,除非他们可能会给你一些关于恢复细节的线索。

首先,我重新安装了VisualSVN并将其配置为在 C:\ Repositories 处有一个空根,通过重命名将所有数据保存在以前的存储库文件夹中。我使用命令会话中的 SVN 命令创建单个测试存储库,并成功将测试文件添加到存储库,以查看基础知识是否有效。安装过程中主机名设置为 http:// robert-pc:81 / ,以防https:导致我遇到困难(事实证明,https:不是问题)。

然后我将实际数据放回 C:\ Repositories ,并使用命令会话中的svn客户端成功检出了包含大量文件的存储库。此检查使我看到无法检出对其他存储库的某些外部引用,因为外部引用的主机名是 https:// robert-pc 。使用VisualSVN,我将主机连接设置为使用https port 443并再次签出,如下所示:

  • 从VisualSVN中,选择“属性”&gt;网络选项卡
  • 服务器名称:robert-pc(与之前相同)
  • 服务器端口:443
  • 选中“使用安全连接(https://)”框,然后单击“确定”。
  • 使用命令行再次签出。
  • 启动命令会话。
  • 将目录更改为将从存储库复制文件的空目录。
  • svn checkout https:// robert-pc / Schedule / branches / MySql(我的情况示例,请注意主机名后的路径区分大小写)。
  • 仅在提示进行域身份验证时输入Windows用户的密码一次。
  • 永久接受证书查询。
  • 输入VisualSVN中定义的用户的用户名和密码,因为使用SVN身份验证。 (顺便说一句,我认为Windows身份验证也很好。)
  • 所有文件都已成功签出

接下来我安装了TortoiseSVN并且可以正常使用它。令人惊讶的是,我可以使用我原来的工作副本而不是我从存储库中检出的副本。这很好,因为我的工作副本还没有提交更改。

答案 2 :(得分:4)

我认为您的问题与服务器和客户端上Subversion 1.7的更改以及证书问题有关。因为您可以使用URL https://robert-pc:8443/svn/在浏览器中访问您的服务器,所以它(在上下文或您的PC中)是一个有效的URL,并且可以由Subversion客户端和TortoiseSVN使用。

尝试执行以下操作以找到问题的真正来源:

  • 打开TortoiseSVN repo-browser,在URL行中输入上面的URL。
  • 查看可编辑的文件:TortoiseSVN > Settings > Network > Subversion server file > Edit,然后查看global部分。在那里,您可以指定存储SSL证书的位置。
  • 检查目录<username>\ApplicationData\Subversion\auth,存储了一些身份验证数据。尝试删除数据,然后访问您的存储库(使用浏览器中的有效URL)。
    1. 删除目录auth的内容(与TortoiseSVN > Settings > Saved Data > Authentication Data > Clear相同)。
    2. 打开命令shell并输入:svn log https://robert-pc:8443/svn
    3. 应该显示警告(error validating server certificate)和一些选项现在该做什么。
    4. 接受服务器证书。
  • 阅读"SVN red book"中如何在客户端使用SSL的文档,也许有一些信息可以帮助您。

答案 3 :(得分:0)

损坏的Winsock在我的服务器上引起了类似的症状(Windows Server 2008 R2 / VisualSVN v2.5.7)。

以下命令在命令提示符下执行,并重新启动服务器。

netsh winsock reset

男孩这是一种痛苦。希望这能为其他人节省一些头发: - )