SVN工作副本到不同的分支合并而不提交工作副本分支

时间:2010-05-25 14:14:41

标签: svn merge working-copy

如果从分支创建了工作副本(本地副本),我们可以将其称为A.编码在分支A中完成,但分支A在提交时“已关闭”,并且分支b已打开。如何将我的工作副本更改合并到分支B并提交到分支B,而不首先将我的更改提交到分支A.

Trunk - >分支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)

2 个答案:

答案 0 :(得分:16)

  1. 备份工作副本。
  2. svn switch分行B
  3. 审核更改(基本修订版可能有所不同,svn仅执行盲目,愚蠢的文本合并),解决冲突(如果有)
  4. commit
  5. 使用具有未提交更改的工作副本执行此类操作非常危险。如果出现任何问题或者存在太多冲突的更改,请回滚到备份版本,从工作副本的基本修订版A创建一个临时分支,切换到该版本并提交更改,以便它们位于某处安全。然后将该分支合并到B中,无论您想要哪种方式,然后将其删除。

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

答案 1 :(得分:2)

要非常小心,我会将更改提交到私有分支(让我们称之为C),然后将C分支合并到新的open-for-commits分支{{1 }}

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