带有插件和外部库的c#项目的VS Solution和Mercurial存储库布局

时间:2010-05-21 01:25:44

标签: .net visual-studio layout mercurial

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

我将使用一些第三方库:

  

ThirdParty.Foo.dll
  ThirdParty.Bar.dll
  ThirdParty.Baz.dll

还有一些内部图书馆:

  

Company.A
  Company.B
  Company.C
  Company.D(参考第三方图书馆)
  Company.E(References Company.A)

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

  

Project.Core
  Project.DataModel(引用内部/第三方库)
  Project.GUI(引用Core,DataModel和内部/第三方库)
  Project.PluginOne(引用Core,DataModel和内部/第三方库)
  Project.PluginTwo(引用Core,DataModel和内部/第三方库)
  *可以是任意数量的插件*

我对Mercurial很新,所以我真的不知道为这样的项目构建我的存储库的最佳方法, 有很多相互关联的组件。

内部库是相当不同的,所以我想说每个库都应该有自己的存储库。但是,其中一些使用其他人提供的功能。如何管理这些依赖关系?

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

所以基本上,对于像这样的项目,最好的结构方式是什么:
(a)我的视觉工作室解决方案
(b)我的源控制存储库/存储库

1 个答案:

答案 0 :(得分:1)

你应该看看Mercurial subrepos。在较旧的mercurial版本中,这是由forest extension完成的。 这允许您通过将其他存储库简单地放在(深)子目录中来嵌套存储库,但是同时拉/克隆/更新它们。