我的任务是配置以下设置。
目前,我们有一个开源项目的内部规范回购。我们有一个 post-receive 挂钩,可以将任何更新推送到公开的远程存储库。
Joe Public 可以从公共回购中提取。
除了 post-receive 钩子,没有人推送到远程仓库
我们有很多用户在内部处理代码,我真的不想弄乱他们已经在工作的工作流程。
内部用户从内部规范 repo 中检查代码并提交相同的代码。
外部开发人员必须提交补丁,然后内部用户将为他们提交(审查后)。
此时,我们要开始允许一些外部开发人员对存储库进行提交访问。
这意味着使远程回购规范。
这也意味着改变用户的工作流程。除非这里的集体可以提出我在 git 方面缺少的东西。
当前工作流程的快速图表。
内部用户。
从内部仓库克隆。-> 带代码的猴子 -> 推送到内部仓库 -> 接收后挂钩推送到远程仓库。
外部用户。
从外部仓库克隆。-> 带代码的猴子 -> 通过邮件列表提交补丁 -> 内部用户将代码推送到内部仓库 -> 接收后挂钩推送到远程仓库。
理想的新工作流程!
内部用户。
从内部仓库克隆。-> 在提供克隆之前,pre-receive hook 确保我们有一个来自远程的更新镜像 -> monkey with code -> push to internal repo -> pre-receive hook 代理提交到远程 repo 并同步 2.
外部用户。
从远程仓库克隆。-> 带代码的猴子 -> 推送到远程仓库。
这有点像多主设置。您可以将代码推送到任一存储库并从任一存储库中提取代码。
其他一些注意事项。
内部仓库可以从远程仓库推送和拉取。远程仓库无法访问内部仓库。
你怎么看?