我们在 flex/as3 项目中使用 mercurial 已经两年多了。随着时间的推移,我们提出了几个项目和一个由项目使用/引用的公共库。为了正确维护版本控制,每次在项目 repo 上标记新版本时,也会将相同的标记应用于库 repo。
这是手动完成的。我不确定上面描述的我们所做的是否是正确的方法,但我想知道是否有任何(其他)方法可以将项目存储库与库存储库相关联,以便每当我想提取项目的特定版本时,我将确切知道应该提取哪个版本的库。
有什么想法吗?谢谢。
我们在 flex/as3 项目中使用 mercurial 已经两年多了。随着时间的推移,我们提出了几个项目和一个由项目使用/引用的公共库。为了正确维护版本控制,每次在项目 repo 上标记新版本时,也会将相同的标记应用于库 repo。
这是手动完成的。我不确定上面描述的我们所做的是否是正确的方法,但我想知道是否有任何(其他)方法可以将项目存储库与库存储库相关联,以便每当我想提取项目的特定版本时,我将确切知道应该提取哪个版本的库。
有什么想法吗?谢谢。
你有没有尝试过 subrepo?通过使用 subrepo,hg 将使用 subrepo 维护整个项目。
例如,如果您有HG_DIR/lib
作为库并且它是 的子存储库HG_DIR
,那么当在 中提交时HG_DIR
,hg 会记住HG_DIR/lib
您正在使用哪个版本,这意味着HG_DIR
链接中的提交与 中的提交HG_DIR/lib
。
hg subrepo
也支持多个 VCS 子存储库。
更新:
正如@alexis 建议的那样,使用官方文档中的推荐,lib 应该被视为项目的兄弟姐妹:
HG_DIR/
lib1/
lib2/
project/