我长期使用 Azure 和 TFS 或 tfvs 并管理不同的分支,我喜欢使用它,但随着时间的推移,我认为CVCS(集中版本控制系统)有一些主要的功能我现在在组织中面临的缺点。
真实的场景,希望你也在工作并面对它们,
I have a single project called 'ProjA' and 5 developers are working on the 'ProjA', 2 new requirements came from customer to add new functionalities on login page
1) Task 1- Forgot Username
2) Task 2- Forgot Password
任务 1 分配给 Developer1,任务 2 分配给 Developer2 两个开发人员开始处理相同的资源意味着相同的 login.aspx 和 .cs 页面
任务 1 已完成并 checkin 到存储库,并移至 QA 分支并在 QA 环境中发布,一天后,Developer2 完成其任务并在 checkin 时 checkin 其代码,他将首先从以下位置获取页面的最新副本(获取最新)服务器,验证后 merge 他的更改并 checkin 代码,移至 QA 分支,意味着现在 tfvs 既有开发人员更改集又有更改,
现在,客户表示只有任务 2(忘记密码)才会转移到生产环境,而任务 1(忘记用户名)暂时保留,
Problem Statement: Now How I can move only Developer2 changes into the production and eliminate/skip the Developer1 changes, Keep in mind that both developers worked on same code resource?
这可以通过手动注释developer1的代码来完成,但它不是可靠的解决方案,也不适合大型且高度可用的项目
最佳答案
我认为,有两个方面:
- 您的开发流程。您应该与您的客户(产品所有者)一起计划/批准您的下一个版本。如果客户说
我只想要任务 2 - 忘记密码
,您只需将任务 2 merge 到您的 QA 分支。如果客户说我只想要任务 1、任务 2
,您可以将这两个任务 merge 到您的 QA 分支。如果您的客户改变了主意,则需要花费额外的费用来调整您的版本(剪切就绪的功能)。因此,不要将未批准的功能 merge 到 QA 中))。 - 技术。使用 TFVC,您可以尝试以下操作
- Rollback您的 QA 分支到之前的状态(任务 1 之前)并重复 merge 任务 2。
- 从生产环境创建另一个 QA 分支并执行 the baseless merge operation来自任务 2 分支。也许这个工具会帮助你:MultiMerge.2017 , MultiMerge.2019 .
关于git - TFVS 上的 TFS merge 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60334222/