将现有存储库添加到另一个现有存储库作为子服务器的最佳/最简单方法(或甚至可能)是什么?
情况是我有一个现有的(主)项目,我想在其中包含一个库项目,以便我可以从主项目编辑库项目,并在进行主项目时将更改提交到库项目。
另外:我是否需要克隆/推/拉到原始库项目,或者在主项目中提交时是否自动完成?
问候
Jesper Hauge
答案 0 :(得分:7)
subrepo文档让我很困惑,所以我编写了一个shell脚本来抽象它的一部分。
称之为
$ 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"