我有一小群开发人员,我们都在自己的机器上开发。当我们有准备好测试的代码时,我们合并并推送到 RhodeCode 安装。我的中央 RhodeCode 存储库的 hgrc 文件设置如下:
[paths]
test_env = /www/mysite/test
prod_env = /www/mysite/prod
[hooks]
changegroup = hg push test_env
因此,当有人将代码签入 RhodeCode 时,更改会自动推送到测试环境。(测试 repo hgrc 文件中有一个 hg 更新,因此代码在那里更新)。太棒了。
但是.. 我希望我们的 RhodeCode 管理员能够推送到 prod 而无需在服务器上访问 shell。有没有办法让某人从 RhodeCode 界面运行“hg push prod_env”?我认为既然 RhodeCode 可以完全控制 hg,那应该是可能的,但是这种能力是否存在于 RhodeCode 的某个地方?添加它会是一项艰巨的任务吗?
如果不是,您将如何允许经过身份验证的用户在没有 shell 访问权限的情况下将存储库推送到生产环境?我一直在谷歌搜索,但我似乎找不到任何东西。我知道我可以用 passthru("hg push test_env) 编写一个 php 脚本,但这似乎是一个权限噩梦,因为 apache 以“nobody”运行并且 rhodecode 拥有 repo。
想法?