在工作中,我们目前正在使用CA SCM(客户端称为Workbench,以前称为Harvest)来进行Oracle PL-SQL代码的版本控制。对后者来说非常糟糕,但是可以通过审计来跟踪批准特定代码更改的人(以及何时)被提升到我们的测试和生产环境。
我们在过去一年中也开始使用Git作为我们各种其他项目的版本控制(许多不同的语言,但Web应用程序现在主要用Grails编写)。一些同事也在调查我们是否应该使用gitflow工作流程。当我们认为它已准备好进行审核和批准时,我们目前会标记所有软件。
有了背景,我发现可能会创建一个“test”和“prod”远程分支,并且由于Gitolite和Stash都允许每个分支权限,我们可以将这些分支限制为仅那些允许批准代码促销/部署的人。但我仍然是一个Git新手,我不能把所有的东西放在一起。
有没有办法设置所有这些,以便除了它所做的一切之外,Git可以作为批准系统运行?具体来说,test和prod分支都需要保留那些与代码更改合并/重新绑定/与它们无关的提交消息。我认为我们可以使用--orphan自动创建这些分支的钩子脚本,但是我不清楚管理器如何将标记的版本推送到测试或生产。
有人能让我指出正确的方向吗?
答案 0 :(得分:3)
我所见过的最接近的审批系统是添加一个中级gerrit-managed回购。
在review system like Gerrit中,您可以添加挂钩,以便在投放足够的“提交已批准”时自动执行操作。
答案 1 :(得分:1)
如果你愿意使用GitHub作为git的前端,你可以通过让每个人拥有自己的代码分支并向测试或生产分支提交拉取请求来获得类似的东西。当有人批准拉取请求时,GitHub将自动创建与批准人作为作者的合并提交。您还可以通过重新访问合并的拉取请求来查看信息。