我的问题是,按照以下过程进行合并时,是“将分支折叠回主干”过程的最后一步,请执行此操作的正确方法最佳实践方案?需要关于使用分支和合并回主干的帮助/建议
我已经使用svn很多年了。在我个人的项目中,我总是乐于在没有第二思路的情况下快速开始干活,并且以单线性的方式进行版本控制已经接近完美。简单而高效。所有的幸福,,直到我想更多地控制第三方库。
今天,我正在进行一个项目,我觉得它已经超越了黑客直接干线的方法。我有多个第三方库,每周更新一次,我真的需要更多的控制权。我需要能够查看第三方lib版本和特定库的跟踪更改之间的特定变更集。我曾经看到过几次代码库变得非常混乱,并且很难用缺乏经验的buildmaster重新回到可行的状态,但我无法在这里出错。
因此,我看着供应商分支,阅读一些文章在这里和那里。我有'Subversion版本控制'这本书,但是我看到的例子在他们的方法中有时是矛盾的,我想说明'分支'的含义。我正要按照approach given on this post by Evan Weaver。
我制定了以下程序,我关心的是最后一节“将分支折叠成干线”。似乎我过去一直在使用的buildmasters通常会将分支变更集合到主干上,而我认为分支甚至不会被删除。这是一个合适的方法吗?
创建分公司
1 - 请注意当前的头部修订:
svn info svn://server.com/svn/repository/trunk | grep Revision
2 - 使后备箱的整洁,远程复制到分支文件夹。命名它。我们叫它your_branch,带有修订版本号替换HEAD_REVISION您在步骤1指出:
svn cp svn://server.com/svn/repository/trunk \
svn://server.com/svn/repository/branches/your_branch \
-m "Branching from trunk to your_branch at HEAD_REVISION"
3 - 切换本地结帐指向新的分支(这不会覆盖您的更改):
svn switch --relocate \
svn://server.com/svn/repository/trunk \
svn://server.com/svn/repository/branches/your_branch
4 - 检查你的本地结帐,绝对是现在your_branch,并且您可以更新OK:
svn info | grep URL
svn up
5 - 如果有必要提交您的新变化。
更新分支
你一直在开发上your_branch一段时间,等有其他人干,现在你必须添加自己的更改your_branch。
1 - 首先,更新您的分支结账并提交任何未完成的更改。
2 - 搜索Subversion日志以查看上次合并的修订版本号(或原始分支的创建时间,如果您从未合并)。这是一次成功的合并关键:
svn log --limit 500 | grep -B 3 your_branch
3 - 还要注意当前最新修订版:
svn info svn://server.com/svn/repository/trunk | grep Revision
4 - 合并最后合并版本的主干和差异对行李箱的最新修订版L -
svn merge -r LAST_MERGED_REVISION:HEAD_REVISION \
svn://server.com/svn/repository/trunk .
5.A:进your_branch工作拷贝,用修订号替换LAST_MERGED_REVISION在步骤2和HEAD_REVISION与修订号指出在步骤3中记ook输出中的错误。可以找到所有文件吗?有没有被删除的东西?也许你做错了。如果需要恢复,运行svn revert -R
5.B - 如果事情似乎5.A OK,检查是否存在冲突,解决任何冲突发现:
svn status | egrep '^C|^.C'
6 - 提交合并,更换命令与来自步骤4:
svn ci -m "Merged changes from trunk to your_branch: COMMAND"
折叠分支回主干的确切命令内容
嘿,Y our_branch完成。现在它必须成为后备箱。
1 - 首先,按照上一节(“更新分支”)中的每一步操作,使your_branch与主干上的任何最近更改同步。
2 - 完全删除主干:
svn del svn://server.com/svn/repository/trunk
3 - 移动your_branch到老树干位置:
svn mv svn://server.com/svn/repository/branches/your_branch \
svn://server.com/svn/repository/trunk
4 - 重新定位你的工作拷贝到主干:
svn switch --relocate \
svn://server.com/svn/repository/branches/your_branch \
svn://server.com/svn/repository/trunk
完成!
请对此程序提供任何建议,意见或反馈意见。