如何在mercurial中添加subrepo到现有存储库

时间:2010-03-09 12:00:14

标签: mercurial

将现有存储库添加到另一个现有存储库作为子服务器的最佳/最简单方法(或甚至可能)是什么?

情况是我有一个现有的(主)项目,我想在其中包含一个库项目,以便我可以从主项目编辑库项目,并在进行主项目时将更改提交到库项目。

另外:我是否需要克隆/推/拉到原始库项目,或者在主项目中提交时是否自动完成?

问候
Jesper Hauge

4 个答案:

答案 0 :(得分:7)

subrepo文档让我很困惑,所以我编写了一个shell脚本来抽象它的一部分。

addsubrepo.sh

称之为

$ cd $TOP_OF_HG_PROJECT
$ addsubrepo.sh $URL_TO_HG_PROJECT relative_path/you/want_to/put_the_subrepo

答案 1 :(得分:2)

阅读文档,subrepo插件支持此功能。

我还没有使用它,但可能会在不久的将来开始使用它。

Mercurial的每一个版本都得到了改进,我相信人们已成功使用它。它似乎获得了合理的关注,并且被列入最后一次编码闪电战的议程。

根据help,pull,push,commit等也应该作用于subrepo。听起来像提交将检查subrepo中是否有任何更改。如果有,它们将被提交,并且subrepo中的新变更集将记录在.hgsubstate文件中。然后将提交此文件以及主仓库中的更改。

当你克隆时,Mercurial应该看到.hgsubstate和.hgsub文件,并正确地拉出subrepo,并更新到正确的版本。

答案 2 :(得分:0)

您可能希望使用deps扩展程序。

答案 3 :(得分:0)

我是这样做的:

$ cd /projects/main_project
$ hg clone /projects/plugins/awesome plugins/awesome_plugin
$ echo plugins/awesome_plugin = plugins/awesome_plugin > .hgsub
$ hg add .hgsub
$ hg commit -m "added awesome_plugin plugin as a subp-repo"