subversion合并删除命令

Hug*_*ugo 6 svn merge

当我将主干合并到功能分支中时,主干上发生的删除将不会复制到我的工作副本.

为什么合并时删除主干上的删除不会删除分支上的同一文件?我正在使用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.";
Run Code Online (Sandbox Code Playgroud)

因此,即使我正在合并主干文件已被主动删除的文件中,该文件仍然存在于我的工作副本中.非常意外.在我的情况下,我甚至没有对文件进行任何更改,这是我能想到为什么svn会保存文件的唯一原因.

JXG*_*JXG 1

据我所知,您所做的是在 file1 中创建本地冲突。在你的分支中,它被修改了。在你的后备箱里,它被删除了。当你合并时,就会发生冲突。所以该文件仍然存在。

我建议进行 2 个测试:

  1. 运行上面的代码后,包含svn status.
  2. 尝试与上面相同的代码,但根本不修改该分支。(svn status这里也会有帮助。)