1

我正在努力改善某些项目中的源代码冗余,但我遇到了一个问题。

假设我有一些实用程序可以在更多项目中使用。示例:构建脚本和测试脚本足够通用,可用于所有项目,但也有一些可以为每个项目定制的配置文件。

我想在一个地方维护构建脚本逻辑(修复错误并添加改进)并在所有使用它的项目中轻松进行更改,但也不会破坏配置文件。

我知道我不能对 git 子模块执行此操作,因为配置文件需要提交到实用程序存储库而不是项目存储库。

我也一直在查看git-subtree,但我不确定它是否在做我想要的。

以前有人涉足这个吗?

4

1 回答 1

1

我知道我不能对 git 子模块执行此操作,因为配置文件需要提交到实用程序存储库而不是项目存储库。

如果您的每个项目都是自己的 git 存储库,您实际上可以使用子模块。
然后每个项目(父存储库)将引用实用程序存储库的特定分支的特定提交,每个分支都具有为每个项目量身定制的实用程序。

但是,对于紧密链接的文件集(一方面是实用程序,另一方面是项目),最好将所有内容保存在一个存储库中并使用内容过滤器驱动程序

内容过滤器驱动程序

你将会拥有:

  • 通用实用程序版本化为模板(即没有它们的值)
  • 价值文件(每个项目一个)
  • 一个版本化的脚本,能够在 ' smudge' 脚本中签出时生成每个项目中的最终实用程序(前提是您的脚本能够检测模板实用程序的内容)。
于 2012-02-16T12:17:07.057 回答