2012-02-16 33 views
1

我正在努力改进某些项目中的源代码冗余,并且遇到了一个问题。在主项目存储库中包含实用程序存储库并允许定制

可以说我有一些工具,我使用acros更多的项目。例如:构建足以通用于所有项目的脚本和测试脚本,但也可以为每个项目定制一些配置文件。

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

我知道我不能用git子模块做这件事,因为配置文件需要pe提交到公用程序库而不是项目。

我也一直在寻找git-subtree,但我不确定它正在做我想做的。

以前有没有人进入过?

+2

为什么不提供脚本的配置作为路径?通过这种方式,您可以使用子模块中的构建脚本,以及每个项目的一个构建配置 – CharlesB 2012-02-16 11:58:51

回答

1

我知道我不能用git子模块做这个,因为配置文件需要提交到公用程序库而不是项目。

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

然而,紧密链接的文件集(在一个端工具,项目一个接一个),最好是把一切都在一个存储库,并使用content filter driver

content filter driver

你会有:

  • 版本为模板的通用工具(即没有它们的值)
  • 值文件(每个项目)
  • 版本脚本能够在'smudge'脚本结帐时在每个项目中生成最终实用程序(前提是您的脚本能够使用detect the content of the template utilities)。