Mercurial,依赖项,存储库结构

时间:2011-03-21 13:34:07

标签: version-control mercurial cmake

我正在开发一些跨平台项目,并使用CMake配置具有不同构建系统的项目。这种方法的缺点是需要在每个平台上构建依赖项和子项目。我修改了经典的trunk-branch-tag结构(我当时是在subversion上)到以下内容:

trunk/
  data/
  test/
  sources/
  ...
branches/
  branch-A/
  branch-B/
  ...
tags/
  tag-1.0/
  tag-1.1/
  ...
workspace/
  msvs_2008/
    3rdParty/ - (contains precompiled libs, e.g boost)
    external-lib-1/ - (external library-1 source)
    external-lib-2/ - (external library-2 source)
    project/ - (external to the trunk)
    CMakeLists.txt - (configures this stuff together)
  generic/ - (for linux, 3rdParty libraries installed using package manager)
    external-lib-1/
    external-lib-2/
    project/
    CMakeLists.txt
  msvs_2010/ - (experimental)
    3rdParty/
    external-lib-1/
    external-lib-2/
    project/
    CMakeLists.txt

因此开发人员可以简单地检查必要的开发分支并开箱即用。他也可以检查主干,如果他有预建的库和必要的依赖,CMake会找到它。

有没有人在解决这个问题?使用mercurial解决问题的更好方法是什么(我不确定使用带有trunk子存储库的不同构建系统的分支是mercurial的好解决方案,并且不确定包含每个构建系统的预构建库是否正确)?

1 个答案:

答案 0 :(得分:1)

查看Mercurial Subrepos,他们就是这种设置的解决方案。