Version control 无论如何,在某一点上,将两个本地mercurial回购相互关联起来?

Version control 无论如何,在某一点上,将两个本地mercurial回购相互关联起来?,version-control,mercurial,Version Control,Mercurial,我们已经在flex/as3项目中使用mercurial两年多了。随着时间的推移,我们提出了几个项目和一个供项目使用/引用的公共库。为了正确地维护版本控制,每次在项目repo上标记新版本时,都会将相同的标记应用于库repo 这是手动完成的。我不确定我们上面所描述的方法是否正确,但我想知道是否有任何(其他)方法将项目回购与库回购联系起来,这样每当我想要提取项目的特定版本时,我都会确切地知道应该提取库的哪个版本 有什么想法吗?谢谢。您尝试过subrepo吗?通过使用subrepo,hg将使用subre

我们已经在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子回购
也支持多个VCS子回购

更新:

正如@alexis所建议的,lib的使用建议应被视为项目的兄弟:

HG_DIR/
    lib1/
    lib2/
    project/

谢谢你的回复。很高兴了解subrepo功能。但我不太清楚如何使用subrepo与多个项目共享lib。或者,这可能实现吗?@byrweb subrepo本身就是一个hg/git/svn回购,因此您可以保留它的历史。因此,在多个项目中,库是每个项目的子库。简而言之,lib本身就是一个repo,每个项目都通过subrepo引用lib。请仔细阅读推荐的使用subrepo的方法。不要将库设置为主项目的子目录/superpo;相反,为库和主项目指定姐妹目录。将两者都封装在容器repo中,容器repo的唯一任务是将这两者组合在一起。(否则,如果不打开库,你就无法投入到真正的项目中)。很抱歉,更新我的问题需要更长的时间,但这涉及到一些研究,我需要阅读和测试你们提供的文档。我将发布我将提出的内容。感谢您抽出时间,再次感谢。