Version control TFS承诺最佳实践?

Version control TFS承诺最佳实践?,version-control,tfs,Version Control,Tfs,在我以前的工作中,程序员被鼓励经常用注释签入代码。在我现在的新工作中,规则是在他或她的代码被QA'ed之前,任何人都不会签入任何东西。但是由于QA落后太多,我们很少签入。我们大概可以每两周左右入住一次。当我们被要求办理登机手续时,弄清楚需要办理登机手续的车票的哪些地方发生了变化,真是一件让人头疼的事。你们知道痛苦吗?其结果是,我们程序员经常忘记签入一些重要文件以获取一些票证。另一个结果是:我修改了票证1和票证2的file1.html。现在,我们被要求只签入票证1的更改,然后我必须在解决方案之外保

在我以前的工作中,程序员被鼓励经常用注释签入代码。在我现在的新工作中,规则是在他或她的代码被QA'ed之前,任何人都不会签入任何东西。但是由于QA落后太多,我们很少签入。我们大概可以每两周左右入住一次。当我们被要求办理登机手续时,弄清楚需要办理登机手续的车票的哪些地方发生了变化,真是一件让人头疼的事。你们知道痛苦吗?其结果是,我们程序员经常忘记签入一些重要文件以获取一些票证。另一个结果是:我修改了票证1和票证2的file1.html。现在,我们被要求只签入票证1的更改,然后我必须在解决方案之外保存一份file1.html副本,然后确定票证1的更改,并在签入之前删除票证2的更改。痛苦


你有什么建议?我应该说些什么来说服这里的团队停止这种签入政策,并允许我们在质量保证之前尽可能频繁地签入?谢谢

我想说,你似乎很了解这个问题,你只需要列出这两种方法的优缺点

  • 在以后签入文件时容易出错
  • 您签入的版本/文件可能与QA测试的版本/文件不匹配。理想情况下,QA应该测试将要发布的相同代码,并且您的版本控制系统用于强制执行这一点
  • 如果QA测试代码包含了可能在同一版本中也可能不在同一版本中的其他更改,则可能会导致测试通过/失败,这取决于不在该版本中的代码。这会使QA过程失效
  • 你所做的与大多数其他团队所做的不同(老实说,这通常比其他几点更能引起经理们的共鸣——至少在我作为顾问的经验中是如此)
听起来您的团队想要实现的是拥有一套代码,这些代码都经过了QA,并且在任何时候都是“可发布的”。这是一个很好的目标,但通常通过使用适当的分支策略来实现

一种方法是按特性进行分支(这基本上就是您现在正在尝试的,只是没有版本控制系统的支持)。这意味着您对所做的每个独立更改/功能都有一个分支。QA针对您的特性分支。一旦QA通过,该特性分支就会合并到MAIN(又名trunk)中

这样,开发人员就有了自己的特性分支,他们可以经常签入(最佳实践是每天至少签入一次)。您仍然拥有代码的副本,该副本仅限于通过QA(MAIN)的代码,并且始终准备发布


如果您无法说服他们,您也可以使用本地Git存储库来组织您的个人更改,然后使用Git tfs工具在签入时将它们发送到tfs。

如果不先签入相关代码,您的功能实际上是如何获得QA的?在这里,我们以一种反作用的方式进行操作:我们直接从开发箱部署到开发环境IIS服务器。这就是QA团队进行测试的方式。如果您的更改没有合并到相关的TFS分支中,下一个部署到dev IIS服务器的人员是否会覆盖这些更改???您的情况似乎违反了大多数常识性的版本控制实践,因此,我不确定是否会有一篇关于风投环境中常识实践的权威文章。我不想这么说,但如果我处在你的位置,我会在其他地方寻找工作。非常感谢你的投入。不久前,我实际上在搜索Git TFS解决方案,但不知道这样的工具是否存在。我想知道,如果我把我的更改推到git,然后推到TFS,它会不会给TFS带来一些git-ty?我知道很多人都使用git-TFS来启用带有TFS后端的本地git存储库。它似乎工作得很好,TFS(和其他TFS用户)甚至不知道您的更改来自Git。或者,如果您使用的是TFS 2013,您可以让TFS使用Git作为版本控制后端,那么您不需要Git TFS工具来充当桥接器,并且在客户端和服务器上都可以使用Git。