代码之家  ›  专栏  ›  技术社区  ›  Matthew King

带有插件和外部库的C项目的VS解决方案和Mercurial存储库布局

  •  1
  • Matthew King  · 技术社区  · 14 年前

    我正在.NET中开发一个项目(使用C更具体一些)。
    将Visual Studio用作IDE。
    使用Mercurial进行版本控制。

    我将使用一些第三方库:

    第三方.foo.dll
    第三方.bar.dll
    第三方.baz.dll

    以及一些内部图书馆:

    A公司
    B公司
    C公司
    D公司(参考第三方图书馆)
    E公司(参考A公司)

    项目本身将包含以下组件:

    项目核心
    project.datamodel(参考内部/第三方库)
    project.gui(参考核心、数据模型和内部/第三方库)
    project.pluginone(参考核心、数据模型和内部/第三方库)
    project.plugintwo(参考核心、数据模型和内部/第三方库)
    *可以是任意数量的插件*

    我对mercurial比较陌生,所以我不知道如何为这样的项目构建存储库, 有很多相互连接的组件。

    内部图书馆是相当独特的,所以我想说,它们中的每一个都应该有自己的存储库。但是,其中一些使用了其他人提供的功能。如何管理这些依赖项?

    项目插件应该与其他插件不同,所以我想每个插件都有自己的存储库。对于解决方案布局和存储库布局,应如何管理对内部/第三方库以及项目其余部分(project.datamodel和project.core)的依赖关系?

    所以基本上,对于这样的项目,什么是构建的最佳方式:
    (A)我的Visual Studio解决方案
    (B)我的源代码管理存储库/存储库

    1 回复  |  直到 14 年前
        1
  •  1
  •   catchmeifyoutry    14 年前

    你应该看看mercurial subrepos . 在旧的Mercurial版本中,这是由 forest extension . 这允许您通过将其他存储库简单地放置在(深)子目录中来嵌套存储库,但同时将它们拉到一起/clone/update。