2

我正在尝试将两个分支与 Tortoise SVN 合并,并在测试模式和实际合并中都出现错误。错误是:

Command: Merging from svn://[IP Address]/Folder1, revision HEAD to svn://[IP Address]/Folder2, revision HEAD into C:\code\Folder2, respecting ancestry, Test Only  
Error: Unable to connect to a repository at URL  
Error:  'svn://[IP Address]/Folder1'  
Error: Network connection closed unexpectedly  
Completed!:

搜索这个,我发现了很多关于 SVN+SSH 与 PuTTY 冲突的信息,但这不是我的问题,因为我什至没有在这台机器上安装 PuTTY。我可以签出、签入、浏览并通常使用这两个分支,它唯一的合并给我这个错误,我在网上找不到任何对我有帮助的东西。此外,我尝试删除并重新安装,并回退了几个版本,但没有运气修复它。有谁知道为什么?

4

3 回答 3

2

当 Tortoise 进行合并时,如果您将修订框留空,它将仅使用 mergeinfo 属性来确定要合并的修订。因此,您“取消阻止”修订,只需明确合并该修订即可。Tortoise 不会在日志中列出已经合并的修订。

Tortoise 可能会再次在 mergeinfo 中记录合并,因此请稍后查看目录的 svn 属性以查看它是否这样做(并编辑额外的条目 - 虽然我认为服务器会这样做,但有时手动更容易) .

另一种方法是查看 mergeinfo 属性并查看此修订是否已列出,如果已列出,请将其删除并提交。然后重复合并,它应该可以按预期工作。

目的地通常有合并信息,但我猜在你的情况下,分支也有一些可能会阻止合并。

于 2013-03-10T17:39:44.643 回答
0

很久以前,当我从虚拟机运行 SVN 时,我遇到了类似的问题。经过一些测试和错误后,我发现问题出在 IP 地址上。因此,我开始使用服务器的名称,而不是使用服务器的 IP 地址。我不知道为什么,但这解决了我的问题。

另外,请确保您已更新您的 SVN 客户端。此外,如果您遇到相同的错误,您应该尝试另一个 SVN 客户端来查看。

您可以使用 Tortoise 在存储库中运行 CLEAN。我发现的大多数错误都可以通过简单地运行 CLEAN 命令来解决。

最后一个提示:尝试在另一台机器上运行该命令,禁用防火墙和防病毒软件。

于 2013-03-04T19:41:26.743 回答
0

合并时,您需要对要合并到的位置进行干净的结帐。然后,您从工作目录中合并合并的 URL 。

幸运的是,TortoiseSVN 有 Subversion 命令行客户端,svn命令。每当您遇到问题时,我建议您使用命令行客户端进行尝试,因为它通常会显示错误可能在哪里。

您可能必须将PATH命令行客户端放在您的 PATH 环境变量中,但它应该在C:\Program Files\TortoiseSVN\bin目录下(或安装 TortoiseSVN 的位置)。

在命令行上试试这个:

C> cd %TO_YOUR_DIRECTORY%
C> svn st   <==== You should see nothing under here. No 'M'odified files. No 'A'dded files.
C> svn up   <==== Make sure your working directory is completely up to date.

您应该会看到一个完全干净且最新的工作目录。如果有任何状态问题,请先解决它们。或者更好的是,做一个新的干净结帐:

C> svn co svn://url/Folder1      <=== Merging to here

一旦您对所有内容都感到满意,请从命令行进行合并。

C> svn merge svn://url/Folder2   <=== This is where you're merging from.

这将使您更好地了解正在发生的事情。我喜欢 TortoiseSVN,但有时便利性和易用性会妨碍我。

顺便说一下,svn help merge查看所有各种命令行参数。首先尝试它,以确保您不会遇到与上次相同的错误,一旦您验证了这一点,您就可以执行 asvn revert -R .然后再试一次。

于 2013-03-04T23:09:43.620 回答