从另一个克隆创建新的HG项目

时间:2011-06-21 21:07:31

标签: version-control mercurial branching-and-merging

我想拥有一个存储库,它是我用于多个项目的框架。我希望能够克隆框架,然后将该克隆变成一个全新的项目。我还希望能够从框架中推出变更集,尽管它并不是非常的。

2 个答案:

答案 0 :(得分:2)

我假设您希望更改仅框架文件以推送到框架仓库,但当然您不希望其他项目特定的更改被推送。

如果您能够将框架代码用作单独的实体,并且只需将其包含(使用C ++术语)到项目代码中,那么我建议您查看subrepos。

将框架设置为subrepo意味着您的新项目将包含框架作为子目录。如果你的一个项目更新了框架,你可以推送那个subrepo,并将其拉入其他项目,这意味着他们都可以使用最新版本,或者被锁定到框架的特定版本。

documentation涵盖了它的工作原理,或者在StackOverflow上设置它们时可能会有一些有用的提示。

答案 1 :(得分:0)

您可以使用正常的hg clone操作克隆存储库。

hg push的默认路径将是您克隆的位置,但您可以愉快地执行hg push <other_loc>

如果我怀疑您要为推送新功能设置默认路径,则只需编辑[paths]的{​​{1}}部分即可。例如,如果您从这开始:

.hg/hgrc

您可以将其更改为

[paths]
default = ssh://hg@someserver/myrepo

这样,如果需要,您可以从[paths] default = ssh://hg@someotherserver/mynewrepo source = ssh://hg@someserver/myrepo 拉出来。

您甚至可以配置不同的默认推送和提取路径,如文档here

所示