【问题标题】:Proprietary + Open Source setup in Git? (eg. chrome/chromium)Git中的专有+开源设置? (例如铬/铬)
【发布时间】:2010-01-08 10:18:59
【问题描述】:

您将如何设置一个代码存储库,其中有一个专有版本和一个开源版本,比如 Chrome 和 Chromium?

使用 Git,您会使用两个分支还是两个存储库?

您如何使“私有”版本与开源版本保持同步?

【问题讨论】:

  • 我正在为我的雇主制定一个流程来执行此操作。我已经编写了一份详尽的指南,并将开发相关的工具。我会询问有关向公众发布这些材料的问题。我很惊讶它还没有完成!

标签: git open-source


【解决方案1】:

如果是我,我会有两个存储库。这样,您可以对每个版本拥有不同的权限 - 对开源版本的公共读取访问权限和仅对“私有”版本的开发人员的读/写权限。

为了使私有版本保持最新,我将在私有版本存储库上设置一个远程,它指向公共版本存储库。这将允许您将更改从那里拉到私有更改。然而,这确实假设更改不会发生冲突(即私有版本功能集是公共版本的超集,而不是分歧)。

【讨论】:

  • 嗯,我知道你会使用本地副本作为“专有”版本(使用我上面的例子),除了可能在一个特殊分支中,这样你也有一个本地主分支从远程开源存储库。然后,您可以将“专有”版本推送到实时站点,或通过其他方式从专有分支的结帐中部署。
【解决方案2】:

我建议使用两个不同的存储库而不是分支。 git pull 和/或 push 将帮助您将更改从开源 repo 转移到专有 repo。

【讨论】:

  • 谢谢,有开源存储库的本地副本,这让事情有点混乱,因为我认为它被理解为另一个存储库。我想知道的是您是否在本地保留了两个唯一的存储库(其中一个是开源存储库的本地副本),或者将“专有”版本作为本地副本的长期运行分支是否可行开源存储库(作为项目维护者,您有写入权限)。
【解决方案3】:

将您的 2 个存储库用作 git 子模块,并使用额外的元存储库来跟踪私有和开源存储库的版本。

【讨论】:

  • 很有趣,什么是“元存储库”? (我对 Git 还很陌生)
  • 对不起,也许我创造的术语不太正确。 “元”是指包含 2 个其他存储库(公共和私有)作为子模块的父存储库。
猜你喜欢
  • 2012-04-05
  • 1970-01-01
  • 2016-01-19
  • 2020-11-07
  • 2018-02-05
  • 2018-04-23
  • 2011-09-06
  • 2019-06-14
  • 2014-12-18
相关资源
最近更新 更多