当我将主干合并到功能分支中时,主干上发生的删除将不会复制到我的工作副本。
为什么合并时删除主干上的删除不会删除分支上的同一文件? 我正在使用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会保存文件的唯一原因。
答案 0 :(得分:1)
据我所知,你所做的是在file1中创建一个本地冲突。在你的分支中,它被修改了。在你的主干中,它被删除了。合并时,它将发生冲突。所以文件仍然存在。
我建议进行2次测试:
svn status
。svn status
会有所帮助
这里也是。)答案 1 :(得分:0)
合并后,您确定在主干上删除的文件仍处于版本控制之下吗?它可能是无版本的,但仍然存在,这是预期的行为。查看svn status
的输出将让您查看该文件是否仍受版本控制。
您可以查看此错误报告,该报告彻底解释了这种情况:http://subversion.tigris.org/issues/show_bug.cgi?id=2282