2013-10-14 96 views
2

在我们的开发环境中,我们有一个自定义框架。虽然我们所有的项目都是从基地开始的,但是通过使用插件和主题,项目基地扩展了项目。具有相同GIT主文件的多个项目

的文件夹结构是:

  • 芯(包含共享代码的所有项目之间)
  • 插件(的每个子文件夹是一个插件,一些存在于所有的项目,有些是项目特定的)
  • 主题(包含项目特定只有代码)

目前我们克隆我们的主回购删除该文件夹。git的,创建一个新的回购,去了解我们的变化。 如果某个功能或bug在某个项目或主要仓库中得到解决,我们目前手动合并具有各种差异工具(主要是winmerge)的更改,以确保项目特定的主题或插件无法接入主仓库,并且所有项目拥有最新的核心和共享插件。

我知道必须有更好的方法来使用子模块吗? 核心作为子模块,每个插件作为子模块,每个主题作为子模块? 然后每个项目都是自己的回购?

或者是结构不是最适合此设置?

回答

0

在名为Project一个git回购插件名为PLUGIN子模块的使用允许该回购协议指向特定版本的插件。因此,如果该插件在其自己的回购演变,PROJET的开发商将不得不在项目回购插件目录,并发出

git pull 

得到它。在开发稳定版本的插件时,它可能是有用的。

此外,该插件的源历史记录仅在其自己的回购库中进行管理。这是一个更容易理解的开发计划。

使用子模块也是有用的,当你有包含使用二进制/数据集的repo时,具有重要的历史管理。所以它不会减慢你的其他回购。

1

为您的核心项目和您的继承项目使用不同的存储库。 您所有的继承项目都应该包含您的骨架项目作为依赖项,maven允许您处理该项目。

每一个时间更新您的结构,你刚才更新每个项目的依赖关系,没有更多的棘手合并

相关问题