我们正在使用TFS代码:trunk +分支用于编码活动。我的团队中有6个开发人员。
问题:有时开发人员不想创建新分支(或使用旧分支)来修复/开发某些东西。他们只是在行李箱里做。好的,在某些情况下它是可以接受的。但大多数时候它会造成很多麻烦。
如何强制保护trunk和强制devs以创建新的或重用旧分支?
UPD :我不想给trunk上的开发者提供只读访问权限(他们必须能够创建分支并自行合并它们)。我想要一些妥协 - 可以创建分支/合并但不能在主干中开发。
答案 0 :(得分:7)
直接在行李箱上工作几乎总是不正确的。是的,它有时可能是最有效的方式,但破坏过程正在打破过程,而最终会咬你。
我认为这个问题最好通过教育解决,但限制对高级开发人员的主干写入访问权限也可能有所帮助 - 如果他们也没有被“感染”:)
Wortyh记住,虽然任何好的源库(阅读:不是VSS)都会让你免于这个领域的终端问题,但这只是努力和警惕的问题。你永远不想依赖回滚,只是说“不要惊慌”。
答案 1 :(得分:1)
您可以在文件夹级别设置权限。
创建分支是一项强大的权限。您可能必须有一个人创建分支,然后设置权限。
有关设置权限的信息,请参阅:http://msdn.microsoft.com/en-us/library/ms252587.aspx
答案 2 :(得分:1)
我将继续@annakata说的话。此外,我高度建议负责管理组织中SCM的任何人设置签入警报,以便在有人将代码检入主干时通知您。这样,您可以跟开发人员一起跟进(如果需要,可以使用前面提到的板球棒)。
需要考虑的其他一些技巧:
只允许高级开发人员办理登机手续。开发人员搁置他们的更改,高级开发人员审核然后办理登机手续。他们可以帮助您成为看门人。
使用TFS2010的gated-check-in功能为您提供帮助。打开行李箱的门禁检查。
以开发人员可以理解的形式进行教育。让他们确切地知道为什么建立后备箱是一件坏事。 SCM流程教育可以帮助人们遵守法规。如果他们认为这只是一个武断的规则,他们就不会对违反规则感到不满。
添加后果(您的组织允许的程度)。像啤酒/披萨基金这样的东西,当他们搞砸时需要做出贡献,或者需要穿戴的滑稽帽子,或者甚至在有人检查到行李箱时向整个开发组织发出响亮的声明。它很快得到了重点。
答案 3 :(得分:1)
TFS是否支持运行像subversion这样的钩子脚本?
如果有,你可以运行预提交和提交后检查以查看提交是否遵循流程指南,拒绝修补程序,并附上电子邮件解释原因等。
如果那太多工作,我最好的建议是与人交谈,并使用良好的旧奖励来遵守规则并惩罚他们。
答案 4 :(得分:1)
他们对TRUNK做了什么样的“修复”?通常情况下,您永远不应该登记到TRUNK,只能合并......
如果他们有增强功能或错误修复可以等待并且不是紧急情况,他们应该在DEV分支中进行开发。
如果是紧急,则从TRUNK分支并进行HOTFIX分支。这将是生产中的内容的副本。
您想要使用HOTFIX的示例: 假设您想要对生产或质量保证进行更改但是您不希望DEV中的未来工作刚刚结束,因为它对QA环境有重大改变,或者您可能只是希望像可以确保只有您知道要更改的代码才能进行部署。如果您没有HOTFIX分支,则单击TRUNK并选择“Branch”并将其命名为HOTFIX或其他有意义的内容。然后在HOTFIX中进行更改,检查它们,并从HOTFIX分支部署。 HOTFIX只包含两件事A.然后是TRUNK和B.你的一次性变化。它不包括您未从DEV分支验证或测试的所有额外工作,这是一件好事。
答案 5 :(得分:0)
您可以在TFS中创建用户组,以便只提供只读或无访问权限。如果右键单击团队项目并单击组成员身份,则将这些组添加到源代码管理资源管理器中的文件夹结构中。