Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn subversion合并一个delete命令_Svn_Merge - Fatal编程技术网

Svn subversion合并一个delete命令

Svn subversion合并一个delete命令,svn,merge,Svn,Merge,当我将主干合并到功能分支中时,主干上发生的删除将不会复制到我的工作副本中 为什么主干上的删除在合并时不会删除分支上的相同文件? 我正在使用subversion 1.5客户端和服务器 我假设在重新集成分支时将跳过对分支中文件的更改 当一位同事仅因为文件未“准备就绪”而从主干删除该文件时,在主干上赎回该文件的最佳方式是什么 情况: cd project; svn copy trunk branches/f1; svn ci -m "branching out" branches f1; echo "

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

为什么主干上的删除在合并时不会删除分支上的相同文件? 我正在使用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为什么会保存文件的唯一原因。

据我所知,您所做的是在文件1中创建一个局部冲突。在您的分支中,它已被修改。在您的后备箱中,它已被删除。当您合并时,它将发生冲突。所以文件仍然存在

我建议进行两项测试:

  • 运行上面的代码之后, 包括
    svn状态的结果
  • 请尝试与上面相同的代码,但是 在不修改该分支的情况下 全部的(
    svn状态
    会有帮助 这里也是。)

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

    您可能希望查看此错误报告,它详细解释了这种情况: