TFS 合并 TFVS 上的冲突

TFS Merging Conflicts on TFVS

我使用 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

Task1 分配给 Developer1,Task2 分配给 Developer2 两个开发人员都开始在相同的资源上工作意味着相同的 login.aspx 和 .cs 页面

Task1 完成并签入存储库并移至 QA 分支并在 QA 环境中发布,在 Developer2 完成任务并签入代码后,签入时他将首先获取最新的副本(getlatest)来自服务器的页面,验证后合并他的更改并签入代码,移动到 QA 分支,意味着现在 tfvs 有开发人员变更集和变更,

现在客户说只有 Task2(忘记密码)会被转移到生产环境,Task1(忘记用户名)暂时搁置,

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 的代码来完成,但它不是可靠的解决方案,不适用于大型和高可用性项目

我觉得,有两个方面:

  1. 你的开发过程。您应该 plan/approve 与您的客户(产品所有者)一起发布下一个版本。如果客户说 I want only Task 2- Forgot Password,您只将任务 2 合并到您的 QA 分支。如果客户说 I want only Task 1, Task 2,您将这两个任务合并到您的 QA 分支。如果您的客户改变了主意,那将花费额外的钱来调整您的版本(削减就绪功能)。因此,不要将未批准的功能合并到 QA ))。
  2. 技术。使用 TFVC,您可以尝试以下操作
    1. Rollback 您的 QA 分支到之前的状态(在任务 1 之前)并重复合并任务 2。
    2. 从生产中创建另一个 QA 分支并执行 the baseless merge operation from Task 2 branch. Maybe this tool will help you: MultiMerge.2017, MultiMerge.2019