我正在使用Azure&TFS或tfv,并长期管理不同的分支机构,我喜欢使用它,但随着时间的推移,我认为CVCS(集中式版本控制系统(有一些主要缺点,我现在在一个组织中每天都面临这些缺点。
真实的生活场景,希望你也在工作和面对他们,
我有一个名为"ProjA"的项目,5名开发人员正在进行"ProjA",客户提出了2项新要求,以添加新功能在登录页面
1( 任务1-忘记用户名
2( 任务2-忘记密码
分配给开发人员1的任务1和分配给开发人2的任务2两个开发人员都开始在相同的资源上工作,这意味着相同的login.aspx和.cs页面
任务1完成并签入存储库,进入QA分支并在QA环境中发布。第二天,开发人员完成任务并在签入时签入代码后,他将首先从服务器获取页面的新作用域(getlatest(,在验证和签入代码之后合并他的更改,移到QA分支,意味着现在tfv既有开发者变更集,也有改变,
现在,客户表示只有任务2(忘记密码(将被转移到生产,而任务1(忘记用户名(暂时保留,
问题陈述:现在我如何只将Developer2的更改转移到生产中,并消除/跳过Developer1的更改,请记住,两个开发人员使用的代码资源相同?
这可以通过手动注释developer1的代码来完成,但它不是可靠的解决方案,也不适用于大型和高可用的项目
我认为,有两个方面:
- 您的开发过程。您应该与客户(产品所有者(一起计划/批准您的下一个版本。如果客户说
I want only Task 2- Forgot Password
,则只将任务2合并到QA分支。如果客户说I want only Task 1, Task 2
,则将这两个任务合并到QA部门。如果你的客户改变了主意,那将花费额外的钱来调整你的发布(现成的功能(。因此,不要将未批准的功能合并到QA( - 技术。使用TFVC,您可以尝试以下操作
- 将QA分支回滚到以前的状态(在任务1之前(,并重复合并任务2
- 从生产中创建另一个QA分支,并从任务2分支执行无基础的合并操作。也许这个工具会帮助你:MultiMerge.2017,MultiMerge.1919