【问题标题】:SVN merge trunk into branch deleting filesSVN将主干合并到分支删除文件中
【发布时间】:2011-12-08 14:16:04
【问题描述】:

我正在尝试做一些看似简单但有问题的事情。

基本上,我有一个 svn 存储库,它有一个主干和一个从修订版 122 创建的分支。

我在分支中添加了一个文件 (src/utils/foo.py),将其提交为修订版 128,一切都很好。

但是,有几个提交(即 (123,124,125,126,127) 到我希望在我的分支中的主干。所以我做了类似的事情:

$ svn merge -r122:127 ^/projects/my_project/trunk/src/utils .
--- Merging r123 through r127 into '.':
D    foo.py

哎呀!它删除了我的文件!我做错了什么才不会发生这种情况?

【问题讨论】:

  • 有人删除了后备箱中的 foo.py 吗?

标签: svn version-control merge delete-file revisions


【解决方案1】:

它可能与拥有文件的文件夹有关,而不是与文件本身有关。我相信大多数 SCM 工具都将文件夹视为文件,因为它们也会被版本化。您可能需要上一级以确保“utils”文件夹也被合并。

编辑:

只是为了解释一下,它是文件夹“utils”,它记录了文件“foo.py”是它的子文件,所以即使 foo.py 存在于主干中,也不需要合并更新后的 utils 文件夹可能不会显示。

【讨论】:

    【解决方案2】:

    首先,您是否在执行 svn merge 命令的正确目录中?其次,永远不要只合并 SVN 中的子文件夹。只需使用

    svn merge ... ^/projects/my_project/trunk 
    

    进入工作副本的根目录。这会更好,特别是与合并历史(svn:mergeinfo)的关系。

    【讨论】:

      【解决方案3】:

      啊!确实有人将分支合并到主干中,将文件添加到主干,但随后回滚该提交,从主干中删除文件。谢谢您的帮助。 svn merge 工作原理的好课。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-20
        • 1970-01-01
        • 2015-09-15
        • 1970-01-01
        • 2010-11-25
        • 2018-11-08
        • 2015-03-28
        相关资源
        最近更新 更多