提问者:小点点

在封闭的企业环境中使用Git进行目标平台版本控制


我们开发了许多插件,这些插件组装到Eclipse RCP 3中。X应用程序。我们使用基于P2存储库的单一目标平台,因为这是Tycho支持的唯一风格。

我们的互联网访问受到很大限制。即使我们配置了代理,我们也无法访问公开可用的 P2 存储库。因此,我们下载 P2 存储库 zip 并将它们放入源代码管理中,以便团队可以共享它们并进行版本控制。但是,我们认为在 SCM 下使用二进制内容通常是一种不好的做法。

我们正准备从ClearCase迁移到Git。在这样做的同时,我们正在考虑更好地改变我们管理目标平台的方式。我们考虑过不同的场景,但我们缺乏经验来衡量它们的利弊。以下是我们思考的第一个结果:

    < li >优点: < ul > < li >插件被共享 < li >我们稍后可以回到目标平台的“物理”先前版本 < li >更改目标平台就像操作文件一样简单
  • SCM中的二进制文件
  • 每个存储库实例都使用大量磁盘来保存目标平台的整个历史记录
  • 优点:
    • 插件共享
    • 轻量级仓库:只有foo.target文件需要版本化
    • 我们以前从未使用过Nexus
    • 更改目标平台内容更复杂
    • 我们需要手动保存目标平台内容的每个版本的存档副本

    如何在封闭的企业网络中使用 Git 处理目标平台版本控制?您如何看待上述情况及其各自的优缺点?你能提出其他解决方案吗?


共1个答案

匿名用户

使用Nexus和Nexus Unzip插件,有一个非常好的解决方案,可以满足您拥有可复制目标平台和独立于互联网接入构建的需求:

  • 设置Nexus,并确保您有一个可以部署到的m2存储库,例如使用部署文件
  • 下载您需要的p2存储库作为zip档案(如果没有提供下载,也可以自己创建这些zip档案)
  • 使用非SNAPSHOT版本将压缩的p2存储库部署到Nexus m2存储库。Nexus中的非SNAPSHOT工件是不可变的,所以当你通过Nexus上的URL引用p2存储库时,你总是会得到相同的内容
  • 安装Nexus Unzip插件,并将其配置为“影子”/服务于您部署到的存储库中的内容。通过这种方式,压缩的p2存储库会获得一个“解压缩”URL,使其看起来像Eclipse和/或Tycho的常规p2存储库
  • 最后,在Nexus中创建一个仅引用p2存储库的目标定义文件,并将该文件放入git存储库

我们已经在我们的企业环境中非常成功地使用了这种设置很长一段时间,所以我建议您也尝试这种方法。

这类似于您的解决方案 2,但使用不同的 Nexus 插件。对于所描述的解决方案,您不需要任何插件即可获得明确的“p2 存储库支持”。此外,您无需对目标平台内容进行任何其他存档。

免责声明:Nexus Unzip插件由第谷项目提供,我是该项目的promise人。