Subversion合并删除命令

6
当我将主干合并到功能分支时,主干上的删除操作不会被复制到我的工作副本中。
为什么在合并时主干上的删除操作不会删除分支上的同一文件?我使用的是Subversion 1.5客户端和服务器。
我假设在重新集成分支时会跳过对文件的更改?
最好的方法是如何恢复主干上的文件,因为我的同事只是因为它还没有"准备好"而从主干上删除了该文件。
情况:
cd project; svn copy trunk branches/f1; svn ci -m "branching out" branches f1;
echo "modifying a file on branch." >> branches/f1/file1; svn ci branches/f1 -m "Branch modified"; 
echo "Above modify is not even needed to state the case";
svn rm trunk/file1; svn ci trunk -m "creating (conflicting) delete on trunk";
cd branches/f1; svn merge svn+ssh://repos/trunk .
[ -f file1 ] && echo "file f1 does exist while it should have been deleted by merge.";

所以,即使我在合并主干时,文件已被积极删除,该文件仍然存在于我的工作副本中。这是非常出乎意料的。在我的情况下,我甚至没有对文件进行任何更改,这是我能想到的svn保存文件的唯一原因。
2个回答

1
据我所知,您所做的是在file1中创建了一个本地冲突。在您的分支中,它被修改了,在您的主干中,它被删除了。当您合并时,它将处于冲突状态。因此,该文件仍将存在。
我建议进行2个测试:
1. 运行上面的代码后,请包括svn status的结果。 2. 尝试与上面相同的代码,但完全不修改该分支。(svn status在这里也会有帮助。)

0

在合并后,您确定主干上删除的文件仍然处于版本控制之下吗?它可能是未经版本控制但仍然存在,这是预期的行为。查看svn status的输出将让您看到该文件是否仍然处于版本控制之下。

您可能希望查看一下这个错误报告,它详细解释了这种情况:http://subversion.tigris.org/issues/show_bug.cgi?id=2282


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接