TFS结帐锁定最佳做法

Mic*_* J. 9 tfs

我难以说服组织中的其他人停止在结账时不加区别地锁定文件.有什么想法,我可以找到一个"官方"文件,解释为什么应该谨慎使用结账锁? Microsoft建议:

作为最佳实践,请谨慎使用"锁定类型"选项,并通知您的队友锁定项目的原因以及计划何时删除锁定.

但没有详细说明.

我可以指出的任何事情都会非常有帮助.

Dan*_*ann 9

虽然我没有正式的Microsoft源代码,但我是应用程序生命周期管理的MVP,所以希望这足以让这个引人注目.:)

在结账时锁定文本文件(即代码)可能会严重阻碍生产力.当我在同事工作的时候,我自己也看到了,并且他们对文件进行了独占锁定.突然之间,这是一个大拇指的时间.当您尝试排除故障或修复时间紧迫的问题时,情况会更糟.

人们想要锁定文件以进行独占编辑的最常见原因是因为他们不希望以后执行混乱的合并.

这通常是一件或多件事的症状:

  • 被独占锁定的文件太大(一个文件中包含大量的类,一个"神级",它做了太多的事情,等等).解决此问题的方法是根据单一责任原则将代码重构为更小,更孤立的类.或者,如果你绝对必须,并且你在.NET世界工作,滥用partial关键字将同一个类分割为多个文件,尽管我想继续记录并说明每次我在代码库中看到这个它让我哭了无数悲伤的泪水.
  • 专门锁定的文件正在进行重大的长期重构.这里的解决方案是隔离分支内的主要变化,频繁地反向集成从主干到分支的变化.
  • 进行更改的人不喜欢合并.我无法帮助你.如果你持有代码而没有提交它足够长的时间,合并会很痛苦,那么你就不会经常提交代码了.如果你没有提交你的代码,因为它还没有完成,但是改变正在进行,而你不想干涉别人的工作,那么你就没有正确使用分支.

是否有时候对代码文件的独占锁是好的和有用的?可能,但是我想不出它解决的问题是通过使用其他更合适的源控制功能无法解决的问题.

如果可以,请使用"本地"工作空间,因为它们不会强制执行排它锁.