TFS检出锁最佳实践

9
我在组织内部遇到了困难,无法说服其他人停止在检出时 indiscriminately 锁定文件。有什么办法可以找到“官方”文件,解释为什么应该谨慎使用检出锁?Microsoft 建议:

作为最佳实践,谨慎使用锁定类型选项,并通知您的团队成员为什么要锁定项目以及何时计划移除锁定。

但没有详细说明。
任何可以指出的内容都将非常有帮助。

1
我认为是否锁定文件取决于您使用的编程语言/平台,在我们的组织中,我们使用带有Microsoft Access的TFS,这几乎不可能成功地合并文件,因此我们只是锁定文件以防止在我们进行更改时发生其他更改。 - Siada
2个回答

10

虽然我没有官方的微软消息源,但我是一个应用程序生命周期管理(ALM)的MVP,希望这足以使内容更具说服力。:)

锁定文本文件(即代码)在检出时可能会严重影响生产力。我自己曾经亲眼见过这种情况,当我在工作时,有个同事没有在工作,而他对一个文件进行了独占锁定。突然之间,就成了双手无所事事的时间。当你试图解决或修复一个时间紧迫的问题时,情况甚至更糟。

人们想要对文件进行独占编辑的最常见原因是因为他们不想后续执行繁琐的合并操作。

这通常是以下一种或多种问题的症状:

  • 被独占锁定的文件太大(一个文件中有很多类,一个做太多事情的“上帝类”等)。解决此问题的方法是根据单一职责原则将代码重构为更小、更隔离的类。或者,如果你确实需要,而且你正在.NET世界中工作,请使用partial关键字将同一类拆分成多个文件,尽管我想要表达的观点是,每次我在代码库中看到这个时,都会流下无尽悲伤的眼泪。
  • 被独占锁定的文件正在进行重大、长期的重构。在此处的解决方案是将主要更改隔离在分支中,并经常将更改从主干反向集成到分支中。
  • 执行更改的人只是不喜欢合并。这个我帮不了你。如果你持有代码而不提交它足够长的时间,以至于合并将是痛苦的,那么你提交代码的频率就不够高。如果你没有提交代码是因为它还没有完成,但是更改正在进行中,而你又不想干扰其他人的工作,那么你就没有正确地使用分支。

使用专门的锁对代码文件进行独占有好处和用处吗?可能有,但我想不出任何问题可以通过使用其他更适当的源控件特性来解决。

如果可以的话,请使用本地工作区,因为它们不强制执行独占锁。


0

对我来说,当我检入*.sln或*.csproj文件的更改时,独占锁变得非常有用。否则,在进行并发检入时会出现问题,因为VS似乎会将这些文件缓存在内存中,而不保存到磁盘。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接