svn之保存部分完成的更改以处理其他更改
我正处于一个大的变化中(比方说ProjectA
),并且必须切换到相同文件的不同项目(ProjectB
)。我还不想让我的工作进入trunk
,我可能要过几天才能回到ProjectA
。
设置它的正确方法是什么?我应该创建一个 ProjectA
分支并将部分完成的工作 checkin 其中,然后将我的工作副本切换回 trunk
并在那里处理 ProjectB
吗?
完成后,我该怎么做才能将 ProjectA
合并回 trunk
?
我对 resolved
冲突很满意,我只需要知道分支、切换和合并的命令......如果我走在正确的轨道上。
目前我们只是在 trunk
中完成所有工作。如果这是问题的一部分,请告诉我。
抱歉,如果这是一个骗局,但我已经尝试了一段时间。
请您参考如下方法:
假设在trunk
中完成你所有的工作是个好主意,并且假设你不需要来回切换(也就是说,你在ProjectB
<上完成工作< code>
在返回
ProjectA
之前),我会执行以下操作:
上完成工作<>
记录我在 ProjectA
上的工作
svn diff > ProjectA-WIP.diff
处理 ProjectB
然后提交
应用 ProjectA
中正在进行的更改
patch -Np0 -i ProjectA-WIP.diff
确保一切正常
- 继续处理
ProjectA
我经常遵循同样的程序。假设 Project A
是一个新功能,Project B
是一个 bug 修复;显然我不能将它们混合在同一个提交中,并且我必须在恢复新功能的工作之前修复错误。
如何解决冲突
当冲突不是微不足道的,并且 patch
根本帮不了你的时候,你可以让 svn
用一些技巧来解决你的冲突。
在 ProjectB
上提交你的工作之后:
在您的工作副本中,返回您针对diff
生成的修订版;它记录在 ProjectA-WIP.diff
中:
Index: some/src/file.c
===================================================================
--- some/src/file.c (revision NNNN)
+++ some/src/file.c (working copy)
如果您的旧版本是NNNN
,只需使用
svn up -r NNNN
应用补丁;这次不会有任何冲突
更新
svn up
借助常用的 Subversion 冲突处理工具解决任何冲突
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。