首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多存储库环境下的补丁管理

多存储库环境下的补丁管理
EN

Software Engineering用户
提问于 2017-02-20 11:34:35
回答 2查看 3K关注 0票数 5

以下是问题所在,以及我们目前如何在工作中管理这个问题。

我们有一个构建菜谱,可以获取多个git存储库。有时,需要从我们不拥有的存储库(公共存储库)中修补模块。在我以前在另一家公司的职位上,我们通常会将所有的公共存储库分叉,并在不同的分支中推送补丁。这很好用,但在某些情况下,维护起来要困难得多,有时补丁确实是特定于特定客户端的,因此很难理解哪些分支是相关的,如果您必须授予开发人员权限,那么分叉50+存储库就不是特别容易管理了。同时,我们管理可以直接应用的补丁文件,而不需要分叉任何存储库。

在我目前的工作中,我决定限制自己修补文件,因为它简化了过程。从技术上讲,应用补丁和合并分支几乎是一回事。

修补程序存储在每个客户端存储库中,并应用于构建过程中。由于在获取多个存储库时,有些补丁将应用于projectA,而另一些补丁将应用于projectB .

现在,我正在编写构建配置文件中需要应用的每个修补程序,但我想知道是否有一种方法可以减少与配置的耦合。

就像应用补丁一样,我会应用一个补丁集,它将更接近一个可以应用多个“提交”的合并。但是修补程序集应该能够在多个目录/存储库中应用补丁。修补程序通常是使用git format patch为特定存储库制作的。

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2017-05-04 08:49:48

对于类似的场景,我们使用了Quilt工具-修补程序集管理实用程序:https://wiki.debian.org/UsingQuilt

基本上,您在项目根目录中有一个补丁目录,其中包含几个独立的补丁,由被子管理。修补程序dir可能如下所示:

代码语言:javascript
复制
patches/100_asserts.diff
patches/101_terminate_call.diff
patches/102_status_code477.diff
patches/107_parser.diff
patches/110_ssldefault.diff

补丁按顺序应用(quilt push),可以不应用(quilt pop),更新(quilt refresh)等等。根据文件的逻辑将补丁分离到文件中是有意义的。

在拥有更多存储库的情况下,您可以创建一个新的包装git,并将依赖项作为git子模块。

代码语言:javascript
复制
patches/  <-- patches repo01, repo02
repo01/   <-- git submodule
repo02/   <-- git submodule

在本例中,修补程序目录由git管理。

在单个存储库用例中,我们用来对存储库进行分叉,添加补丁dir,并在同一个存储库中维护补丁。

更新也可以通过:弹出所有补丁的quilt pop -agit pullquilt push补丁一个接一个,解决冲突,如果需要,通常quilt refresh做的工作。

还有一些直接与git集成的工具:

票数 3
EN

Software Engineering用户

发布于 2017-02-21 12:40:02

根据我在您的问题中所理解的,当最佳解决方案可能直接使用版本控制系统时,您可能会经常使用补丁。补丁是为快速修复而制作的。

因此,如果我们使用的是我们不拥有的存储库,我们可以使用:

如果“补丁确实是特定于特定客户端的”,那么我们可能根本不想对这些公共存储库进行修补(它构建时考虑了另一种哲学/用例/体系结构),最好将备选方案用作:

  • 对使用这些外部存储库的代码进行更改
  • 创建外部存储库的装饰器/包装器
  • 使用可供选择的外部公共存储库(或创建我们自己的)

我知道你想要一个补丁管理工具。但是这看起来就像一个版本控制系统(SVN,git,mercurial)!

但是,如果您确实需要使用补丁系统,您可以在projectA上创建一个配置文件,在projectB上创建另一个配置文件,(等等)来描述需要使用的补丁。这些补丁将存在于一个独立的存储库中。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/342601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档