git - TFVS 上的 TFS merge 冲突

标签 git azure tfs tfvc

我长期使用 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的代码来完成,但它不是可靠的解决方案,也不适合大型且高度可用的项目

最佳答案

我认为,有两个方面:

  1. 您的开发流程。您应该与您的客户(产品所有者)一起计划/批准您的下一个版本。如果客户说我只想要任务 2 - 忘记密码,您只需将任务 2 merge 到您的 QA 分支。如果客户说我只想要任务 1、任务 2,您可以将这两个任务 merge 到您的 QA 分支。如果您的客户改变了主意,则需要花费额外的费用来调整您的版本(剪切就绪的功能)。因此,不要将未批准的功能 merge 到 QA 中))。
  2. 技术。使用 TFVC,您可以尝试以下操作
    1. Rollback您的 QA 分支到之前的状态(任务 1 之前)并重复 merge 任务 2。
    2. 从生产环境创建另一个 QA 分支并执行 the baseless merge operation来自任务 2 分支。也许这个工具会帮助你:MultiMerge.2017 , MultiMerge.2019 .

关于git - TFVS 上的 TFS merge 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60334222/

相关文章:

git - 在自定义位置设置 .git 文件夹

java - 如何从 Java SpringBoot 应用程序读取 Azure 应用程序配置值

azure - 如何通过传递凭据来验证 ARM 模板

TFS 构建/发布代理 "update all agents"未更新 TFS On-Prem 2017 的代理

git - 实现 Git 工作流程

git - 如何验证所有提交是否使用 GitLab CI 进行编译?

azure - 减去 ADF 中的 2 天当前日期

visual-studio-2012 - 如何从 Visual Studio 2012 中的变更集详细信息打开实际文件,而不是一些散列只读服务器副本?

tfs - 在 Visual Studio Team Services 上构建特定分支

git - git log 的 """` 中的 `--pretty="是什么意思