【问题标题】:"Merge" new file in trunk into a branch将主干中的新文件“合并”到分支中
【发布时间】:2010-11-12 01:08:59
【问题描述】:

这应该是微不足道的,但我找不到任何例子。 (我确定那是因为我只是在搜索错误的单词。)

我需要将存储库主干中的一个文件合并到一个分支中。该文件是主干中的新文件,但尚未在分支中;因此,我知道进行合并的正常方式是行不通的。因此,我需要以某种方式将该新文件放入分支中。

我需要对特定文件有选择地执行此操作;换句话说,我不想合并整个主干,我什至不能合并整个变更列表。

感谢您的任何建议。

edit — 我意识到我可以从我的主干工作区复制文件并将其svn add 到分支,但我认为这不是“正确的” " 这样做的方法。

【问题讨论】:

  • 您是否尝试仅合并引入该文件的修订?如果当然它是唯一的一个文件...
  • 不,trunk 中的 checkin 包含很多我无法合并到分支中的东西。

标签: svn merge


【解决方案1】:

您可以执行svn cp ^/trunk/file1 ^/branches/mybranch/file1 之类的操作,将单个文件从主干复制到分支。

【讨论】:

  • 哇,确实有某事。另外,如果我可以投票两次,我会赞成那个“^”技巧-我猜这意味着“明显的存储库主机”之类的“明显”的适当含义?
  • 这似乎是错误的,当您稍后尝试在trunk和mybranch之间进行合并时会产生冲突。
  • 我同意这可能是一个问题,但 OP 明确表示“我什至无法合并整个变更列表”,所以我不确定这里还有什么其他选择。
【解决方案2】:

以下命令,忽略任何冲突,覆盖旧文件并添加新文件: 进入TRUNK目录,从BRANCH合并:

svn merge --accept theirs-full

【讨论】:

    【解决方案3】:

    找到目标分支中已经存在的父目录。使用--depth递归合并目录和文件。

    例如:

    svn merge -c 1234 --depth infinity ^/RING/trunk/exec/parent parent
    

    其中1234 是要合并的修订号。

    新文件可能存在于^/RING/trunk/exec/parent 中,但尚未在目标分支的父目录中创建。上述合并命令会将新文件添加到目标分支父目录中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多