我正在努力改善某些项目中的源代码冗余,并且面临问题。

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

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

我知道我不能使用git subpodules做到这一点,因为配置文件需要将PE定为实用程序存储库而不是项目一个。

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

有人以前有过这个吗?

有帮助吗?

解决方案

我知道我不能使用git subpodules来执行此操作,因为配置文件需要投入到实用程序存储库而不是项目一个。

实际上,如果您的每个项目都是GIT存储库,则实际上可以使用子模型。
然后,每个项目(父存储库)将引用实用程序存储库的特定分支的特定提交,每个分支都及其为每个项目量身定制的实用程序。

但是,对于紧密链接的文件集(一侧的公用事业,另一侧投影),最好将所有内容保留在一个存储库中并使用一个 内容过滤器驱动程序:

content filter driver

你将会拥有:

  • 通用实用程序版本为模板(即没有其值)
  • 价值文件(每个项目一个)
  • 一个版本的脚本,可以在'smudge脚本,为每个项目中生成最终实用程序(前提是您的脚本能够 检测模板实用程序的内容).
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top