目前,我正在从遗留版本控制系统转移并将我的团队项目转移到mercurial.作为我正在移动的代码类型的一个例子,我有一个25+项目的Visual Studio解决方案,包含几个独立的应用程序区域,这些区域都依赖于公共代码.查看Stack Overflow,我发现的最接近的问题就是这个问题,但它只提到了版本控制.我正在寻找有关使用Mercurial管理这些依赖项的具体实现技术的进一步建议.
依赖关系的简化视图如下所示.(这仅用于说明和示例;实际依赖性明显更复杂,但性质相似.)
Common Lib 1
/ | \
---- | -----
/ | \ \
App 1 Common Lib 2 \ App 2
/ | \ \
------- | ------ |
/ | \|
App 3 App 4 App 5
Run Code Online (Sandbox Code Playgroud)
Common Lib模块将是共享代码 - 这将是一个DLL或SO或一些其他库,可以在编译和运行时同时在所有应用程序之间使用.否则,应用程序将能够彼此独立地运行.
设置我的mercurial存储库有几个目标:
另一点是我有一个服务器设置,我为每个项目都有单独的存储库.
我看到了几种铺设这些项目的方法.
这将使用基于url的子版本(例如,在.hgsub中,我会做类似的事情.)做出来,它将如下所示:App1 = https://my.server/repo/app1
+---------------------------+
| Main Repository |
| | +---------------------+ |
| +-| Build | |
| | +---------------------+ |
| …Run Code Online (Sandbox Code Playgroud) 我(仍在)试图将我们公司的SVN完全迁移到HG.在大多数情况下,我已经成功,但我们遇到了一个问题.
我们的代码库有30多个不同的项目,每个项目都在其文件夹中.
我被多次询问如何提交,然后将特定文件推送到我们的中央存储库,而不是被迫在任何地方提交所有内容然后推送它,这当然很烦人.不能只拉动特定项目也是一件麻烦事.
有没有办法处理这个像我们以前在SVN一样?我们可以在哪里提交我们想要的而不是一切,只更新必要的内容.
谢谢.