【问题标题】:SVN Working Copy to Different Branch Merge Without Commit to Working Copy BranchSVN 工作副本到不同的分支合并而不提交到工作副本分支
【发布时间】:2011-02-23 17:30:59
【问题描述】:

如果一个工作副本(本地副本)是从一个分支创建的,我们称它为 A。编码是在分支 A 中完成的,但分支 A 对提交“关闭”,而分支 b 已打开。如何将我的工作副本更改合并到分支 B 并提交到分支 B,而无需先将更改提交到分支 A。

主干 -> 分支 A。

   I checked out branch A and made changes.
   Branch A was closed to commits.

从分支 A 创建的新分支。 分支 A -> 分支 B。

   I would like to commit my working copy changes (currently pointing at Branch A into branch B without commiting to Branch A)

【问题讨论】:

    标签: svn merge working-copy


    【解决方案1】:
    1. 备份您的工作副本。
    2. svn switch 到分支B
    3. 审查更改(基本修订可能不同,svn 只进行盲目、愚蠢的文本合并),解决冲突(如果有)
    4. 提交

    对带有未提交更改的工作副本执行此类操作是危险的。如果出现任何问题或有太多冲突的更改,请回滚到您的备份版本,从工作副本的基本修订版A 创建一个临时分支,切换到该分支,然后提交您的更改,这样它们就安全了。然后将该分支合并到B,无论您想要什么方式,然后删除它。

    记住 svn 的口头禅:尽早提交,经常提交。如果我有超过一个工作日的未提交更改,我会感到紧张。通常,我会为任何持续时间超过几个小时的开发创建一个功能分支。并定期承诺。完成后,我将它合并到它来自的任何地方,然后将其删除。

    【讨论】:

    • 这行得通。我不需要备份,但它很好,因为你不想浪费几天的工作。我喜欢 svn 的咒语!
    【解决方案2】:

    为了非常小心,我会将我的更改提交到一个私有分支(我们称之为C),然后将C 分支合并到新的open-for-commits 分支B

    1. cd 到您要提交的更改的工作目录
    2. svn copy . C
    3. cd .. 到您的工作区文件夹并结帐
    4. svn co B
    5. cd进入B目录
    6. svn merge 第 2 步的修订。
    7. 查看更改。
    8. 提交!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      相关资源
      最近更新 更多