我们希望防止对源代码管理中已经应用的SQL迁移脚本进行更改。有没有一种方法可以将文件(特别是SQL迁移脚本)标记为只读,并将其保留在源代码管理中?
我们可以在中央存储库中使用预提交挂钩,但这需要用户执行一些高级的mercurial操作来撤消本地提交。
如果做不到,还有其他建议吗?非常感谢。
看看AclExtension。它允许您以多种方式指定访问控制。
在您的情况下,您可以尝试将脚本设置为"只读",方法是禁止所有用户对这些文件进行所有更改(请参阅DONT-TOUCH-THIS.txt
示例)。
请注意,这仍然需要一个钩子,但至少可以省去自己编写钩子的麻烦。您可以让所有开发人员都同意使用pretxncommit
挂钩,这样可以在违反ACL权限的情况下阻止提交事务的发生。