我正在尝试设置三件事:
- 公共 SVN 存储库的公共 GIT 镜像
- 该 repo 的公共分支,多个贡献者可以发布补丁
- 来自 #2 的公共回购的私人分叉
我知道如何做 #1,但我正在寻找关于 #2 和 #3 的建议:如何配置、如何保持同步、要避免的事情等。
这里有更多细节:
我正在使用一个基于 SVN 的开源 Web 应用程序,它的补丁提交机制缓慢且效率低下:补丁附加到问题跟踪系统中提交的错误上,几周或几个月后,这些补丁进入主干。
一个单独的问题是我需要维护一个项目的私有分支,其中包含只有我的公司才需要的附加功能。但是我想要一个简单的方法让我的 fork 跟上来自主干的最新官方提交。
我想找出一个基于 GitHub 的解决方案来解决这两个问题。我想结束三件事:
- “镜像” - SVN 的 GitHub 镜像,通过我或其他补丁贡献者将运行的自动化过程(如本文中)自动与最新的 SVN 更改保持同步。这将使我或其他任何人都可以轻松地创建项目的公共或私有分支,而不会弄乱 SVN。
- “contrib” - 对于我自己和我信任的一些补丁提交者,我想建立一个“镜像”的公共分支(或分支?),我们可以在其中提交我们希望最终出现在 SVN 中的补丁。这也可能使核心提交者更容易和更有效地将补丁拉回 SVN。
- “ourfork” - 最后,我们公司希望建立一个“contrib”的私有分支,其中多个开发人员可以添加仅适用于我们公司实施的私有功能
一些具体问题:
- 这种方法有意义吗?我们应该使用更简单的解决方案吗?
- 如何确保“contrib”与“mirror”保持同步?只要它们不冲突,GitHub是否有自动应用新提交的魔法?假设没有,确保 contrib 与其父级保持同步的良好工作流程是什么?
- “ourfork”在逻辑上将是“mirror”的孙子。什么是正确的工作流程来使其与“镜像”和“贡献”的更改保持同步?我应该将“contrib”设置为我唯一的遥控器吗?或者将两者都设置为遥控器 - 如果是这样,合并的正确过程是什么?
我阅读了@rq 对类似问题的回答,我怀疑它回答了上述大部分问题,但我是 Git 新手,我不确定他的回答是否适用于我的情况。