当前位置:主页 > 通发娱乐网页版登录 >

Team Foundation 合并的目标分支选项及如何在团队项

发布时间:19-12-06 阅读:616

在不常见的环境下, 我们每每必要在团队项目之间迁移变动.在保举的环境下, 同一个codebase的所有不合版本或者branch的源代码要放在同一个团队项眼前目今, 这样方便源代码的分支/合并操作, 也同样方便事情项和代码变动集的关联. 然则, 在某些公司特定策略也可能是历史遗留策略的要求下, 在TFS上, 每每带来不好的实践. 比如, 给某些特定版本的源代码创建零丁的团队项目来治理, 使TFS本身的合并分支操作难于在Team Projects之间进行, 必须分外留意.

让我们来简化场景.

老板对你说, "我们有一个已经存在的项目SunPoject保存着我们的项目代码 Version 1.0. 现在1.0项目靠近完成, 2.0版本顿时就要开始开拓. 公司的源代码治理策略是每一个Major版本数字改变, 这必要一个新的团队项目. 新的团队项目的源代码由前一个主版本确当前主分支供给", "小A啊, 这个工作不难吧? 你顺手完成了吧."

我们有两种措施来完成这一义务, 在创建新的团队项目时, 有一个不起眼的选项或许我们常常会轻忽, 然则这个选项直接抉择了在今后的事情中, 分支/合并操作的繁杂度.

操作1, 假如选择"Create a new source control branch"并且选择源团队项目, 新的团队项目将会被创建, 源代码也会自动被Branch到这个新的团队项目中.

操作2, 假如选择"Create an empty source control folder",一个空的根目录会被创建. 然后我们可以在原本的团队项目上选择Branch操作, 让源代码转移到这个新的团队项目中.

二者的最遣散果彷佛是等价的?

等等...工作彷佛没有这么简单...

第二个场景, 过了一段光阴, 老板又对你说(老板老是说啊说的), "小A啊, 我们在1.0的团队项目上面做了几个HotFix", "你是不是现在把这些HotFix合并到我们正在开拓的2.0团队项目上?", "便是一个Merge操作, 不难吧?"

于是你打开了Team Explorer, 在1.0项目上选择Merge, 这个时刻区别显现了,

征象1, 假如上一步你选择了步骤1, 那么你会看到, Target Branch里面有你新创建的团队项目, 你可以安闲选择HotFix对应的那些ChangeSet, 做Merge操作.

征象2, 假如上一步你选择了步骤2, 那么你将看到, Target Branch的选择列内外貌, 没有你想要的新团队项目!!!由于在创建新项目的时刻, 新旧项目没有对应的分支关系!

那么若何在自力的团队项目之间迁移变动呢?

TFS的分支合并给了我们两个选择, 基于敕令行的操作和基于UI的操作.

幸运的是, 我们可以应用基于敕令行的TFS Baseless Merge 敕令来完成这一义务.

tf merge /baseless -r “$/Project2/Main/Source” “$/Project1/Main/Source”

tf merge - Team Foundation的merge敕令

/baseless - 唆使Baseless Merge的开关.

-r- 对子目录进行递归的合并

“$/Project2/Main/Source”- 源办事器目录

"$/Project1/Main/Source"- 目标办事器目录

这样就可以进行merge了, 不幸的是, 因为项目间对应的分支关系的缺掉, 今后你的每一次Merge操作, 都只能基于敕令行了...

转自:http://www.cnblogs.com/sun/archive/2010/01/12/1645068.html



上一篇:北京人和正式降级 明年中超京城无德比
下一篇:没有了