最近发生的事情是,在完成对我们解决方案的Stable分支的一些小改动之后,同事意外地检查了他在开发分支上的一些未完成的工作.TFS将它全部捆绑为一个变更集.
虽然错误很容易被发现并修复,但我觉得我在这里缺少一些关键的东西.为什么TFS的"待定更改"页面允许您(更糟糕的是,默认情况下提供)创建包含您在每个分支上完成的所有内容的单个变更集?
在我看来,变更集应该包含对一个且只有一个分支的更改,因此您可以根据需要更有效地管理/合并/回滚它们,而不会影响其他分支.如果您同时处理多个分支,则在签入时应该要求您插入多个描述,并因此创建多个更改集.
假设我的推理至少是有效的(如果不一定是通用的),是否有办法配置TFS,以便用户不能一次签入多个分支的更改?
编辑:如果不这样做,我将很感激至少设置'待定更改'页面将默认情况下所有更改的文件放在'排除'部分,这样用户需要在签入之前手动包含它们(这将有助于他们注意任何意外的变化).
最佳实践:开发人员可以通过右键单击文件夹,选择"签入挂起的更改"来检入限制到给定文件夹/分支的挂起更改.对于该签入操作,"待处理更改"视图将暂时"排除"在该文件夹/分支之外所做的任何更改,直到您完成签入为止.
是否可以阻止:根据Microsoft,有一个预先制定的签入策略选项,称为"强制签入仅包含属于当前解决方案的文件".假设您使用"解决方案",这可能对您有用.
为什么允许这样做:我想这就是TFS的设计方式.我怀疑它是将分支作为文件夹处理,并允许跨文件夹的签入泄漏到允许跨分支机构的签入.
我可以想到一些可能有用的场景,比如在发布分支和主分支上应用关键修复,并且合并不是一个选项。
为了最大限度地降低风险,您可以采取的措施是缩小开发人员工作空间的范围,正如 Jesse 在单独签入每个项目中所建议的那样?。
| 归档时间: |
|
| 查看次数: |
1473 次 |
| 最近记录: |