我正在尝试使用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。我可以签出,签入,浏览,并且通常使用两个分支,它唯一的合并给我这个错误,我找不到任何在线帮助我。此外,我已经尝试删除并重新安装,并退回几个版本,但没有运气修复它。有谁知道为什么?
答案 0 :(得分:2)
当Tortoise进行合并时,如果您将修订框留空,它将仅使用mergeinfo属性来确定要合并的修订版本。所以,你要解锁'修订,只是明确地合并那个。 Tortoise没有在日志中列出已经合并的修订版。
Tortoise可能会再次在mergeinfo中记录合并,所以之后看一下目录的svn属性,看看是否这样做(并编辑额外的输入 - 虽然我认为服务器会这样做,但是有时手动更容易)。
另一种方法是查看mergeinfo属性并查看是否已列出此修订,如果是,请将其删除并提交。然后重复合并,它应该按预期工作。
目的地通常有mergeinfo,但我猜测在你的情况下,分支也有一些可能会阻止合并。
答案 1 :(得分:0)
很久以前,当我从虚拟机运行SVN时,我遇到了类似的问题。经过一些测试和错误后,我发现问题是IP地址。因此,我开始使用服务器的名称而不是使用服务器的IP地址。我不知道为什么,但这解决了我的问题。
此外,请确保您已更新SVN客户端。此外,如果出现相同的错误,您应该尝试其他SVN客户端。
您可以使用Tortoise在存储库中运行CLEAN。我发现的大多数错误都可以通过简单运行CLEAN命令来解决。
最后一个提示:尝试在另一台计算机上运行该命令,禁用防火墙和防病毒软件。
答案 2 :(得分: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
以查看所有各种命令行参数。首先尝试不做任何操作以确保您没有收到与上次相同的错误,并且一旦您确认了这一点,就可以执行svn revert -R .
然后重试。