我想解决的问题是开发人员在不经过适当渠道的情况下更改文件的地方。开发人员应该能够自己进行更改,但只有在他的工作获得批准后才能进行更改,因为代码用于很多项目
我发现此链接也描述了我的问题: http://www.p4ideax.com/ideas/694/temporary-permissions
实现此目的的一种方法是只让架构师访问这些文件,然后授予开发人员临时访问权限。也许权限可以与perforce中的特定工作相关联。我可以看到如何做到这一点的唯一方法是将人员应该能够更改的文件添加到作业模板中的新字段(由架构师完成)。然后有一个服务器应用程序动态调用p4保护和管理权限表。然后,当作业关闭时,权限被撤销。服务器应用程序可能是bugtracker软件。
是否有更简单的方法,甚至可以解决问题的第三方软件?
我知道另一种解决方法是将这些敏感文件放在一个分支中,然后只允许架构师权限合并到这个分支中。这个解决方案感觉有点沉重。
任何建议都会有所帮助
答案 0 :(得分:1)
这可以通过预提交钩子完成。 Perforce Depot有一些例子。
我的想法是拒绝提交那个没有“已批准列表”工作的软件仓库部分中的文件。您可以通过多种方式创建批准列表,尽管一个简单的列表(如果您全局使用Perforce)将把作业列表放入存储库控制下的文件中,然后让该列表仅供架构师使用。
然后,预提交触发器基本上需要: - 如果提交的文件不在受保护的树中,请进行提交 - 从仓库中获取文件的r / o副本 - 从提交中获取作业列表 - 针对列表grep该作业 - 如果作业在列表中,请让提交发生 - 拒绝提交并附带相应的错误消息