【发布时间】:2012-06-07 19:20:54
【问题描述】:
我的 Team Foundation Server 中有 3 个级别的用户:
- 程序员:代码审查员必须审查他们的代码,他们不能签入自己的代码
- 专业程序员:他们的代码不需要审查,但他们的代码副本应自动发送给代码审查员
- 代码审查员:他们的代码不需要审查,可以直接签入
我该如何实现这个?
【问题讨论】:
我的 Team Foundation Server 中有 3 个级别的用户:
我该如何实现这个?
【问题讨论】:
一种方法是使用分支和警报。比如……
TFS 可以针对各种事件发送电子邮件警报,因此代码审阅者只需订阅签入事件即可知道代码何时已签入 Main(由高级程序员)或需要审查(已签入需要初级程序员审核)
以这种方式使用分支意味着您必须在两个方向上进行合并(将初级的签入合并到 Main,并将高级的签入合并回 RequiresReview)
初级程序员的另一种方法是使用 ShelveSets 而不是另一个分支。在这种方法中,Junior 不会签入他们的代码,而只是将其移动到搁置集中,然后通过电子邮件向代码审查员发送电子邮件,要求他们审查并签入他们的搁置集。这避免了将 Main 中的代码合并回 RequiresReview 的需要 - 初级人员将在 Main 分支上“工作”,但他们的签入将通过搁置集“关闭”。
您还可以购买一些第三方工具,以更加集成的方式为您管理代码审查流程。网络搜索应该可以帮助您找到这类工具。
编辑 请注意,Visual Studio 2012 和 2013 现在包括对代码审查的集成支持(本质上是在上面搁置的想法之上的适当用户界面),因此从 2010 升级可能比我上面建议的解决方法更好。 em>
【讨论】:
您可以主要在 TFS 2010 中进行配置,但没有简单的方法可以从 UI 中公开它。 TFS 2012 和 VS2012 将为代码审查提供更好的 UI,并且它有一个嵌入式流程,可以帮助您完成所有工作。
如果你想按照你描述的那样配置源代码控制权限,它是这样工作的:
程序员
将它们放在 TFS 组或 AD 组中并设置它们的安全性,以便它们在其工作分支上具有 Checkout 和 Lock 权限,但没有签入权限。当他们完成工作后,让他们创建一个搁置集,然后让他们使用搁置集名称向审阅者发送一封电子邮件。审阅者要么返回带有 cmets 的集合(内联或通过电子邮件或工作项),要么代表程序员签入代码。因为程序员不直接签到,所以不能设置自动提醒。您可以更改流程模板,将准备好审查作为任务的状态,并让他们转换任务(这是自定义代码审查解决方案的工作方式)。
代码审查员
必须至少具有结帐、锁定和签入权限。将它们放在 TFS 组或 AD 组中,并相应地设置安全性。他们可以直接签到,无需使用搁置集。
专业程序员
(我会小心这个词,它会让其他程序员听起来不专业,我更喜欢资深或经验丰富的程序员)。授予他们与 Code Reviewer 相同的权限。 Configure a TFS Alert 当该组中的任何人签入某些内容时会响起。将警报发送给代码审查员。然后,他们可以使用查看历史记录选项来查看变更集并将 cmets 发送给相关的程序员。使用TFS Power Tools 可以更轻松地配置警报(并且功能更强大)。
如果您想要更高级的解决方案,即集成到 TFS 流程模板中的解决方案,那么您可以使用以下两种开源解决方案之一:
或者查看他们的代码(它们是开源的),以了解如何自己构建这样的东西。不过,这不会很容易,一旦 TFS 2012 出来,它可能就没用了。
还可以查看my presentation on the new features in TFS 2012 around code review(ppt 是英文的,尽管录音是在荷兰会议上完成的,因此是荷兰语)。
【讨论】:
+1 杰森 好的第 3 方之一是团队审查
【讨论】:
如果您可以升级到 Visual Studio 2012,那么现在 Team Explorer UI 中内置了一个很棒的代码审查界面(也需要 TFS 2012)。看看吧:
【讨论】: