2010-05-25 35 views
13

如果从分支创建工作拷贝(本地拷贝),我们称之为A.编码在分支A中完成,但分支A被“关闭”到提交,分支b被打开。如何将我的工作副本更改合并到分支B中,并提交给分支B,而无需先将更改提交给分支A.SVN工作拷贝到不同分支合并而不提交到工作拷贝分支

干线 - >分支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) 

回答

16
  1. 的工作拷贝制作备份。
  2. svn switch分支B
  3. 检查变更(基础版本可能会有所不同,和svn不盲目,哑文本仅合并),化解矛盾,如果任何
  4. 提交

做这样的事情了没有提交更改的工作副本是危险的。如果出现任何问题或者有太多冲突的变化,请回滚到备份的版本,从您的工作副本的基本版本A创建一个临时分支,切换到该版本并提交更改,以便它们处于安全的位置。然后将该分支合并到B中,然后将其删除。

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

+0

这工作。我不需要备份,但是因为你不想失去几天工作的价值,所以很好。 我喜欢svn曼陀罗! – 2010-05-25 16:56:47

2

要非常小心,我会提交我的修改私有分支(姑且称之为C),那么C分支合并到新开的,提交分支机构B

  1. cd工作目录与您要提交
  2. svn copy . C
  3. cd ..到工作区文件夹检出
  4. svn co B
  5. cd分为B目录
  6. svn merge修订第2步的变化。
  7. 查看更改。
  8. 提交!