我正在用.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)我的源控制存储库/存储库
答案 0 :(得分:1)
你应该看看Mercurial subrepos。在较旧的mercurial版本中,这是由forest extension完成的。 这允许您通过将其他存储库简单地放在(深)子目录中来嵌套存储库,但是同时拉/克隆/更新它们。