如何在Mercurial中组合两个项目?

jm.*_*jm. 84 mercurial

我有两个独立的mercurial存储库.在这一点上,它们"成为一体"是有道理的,因为我想同时处理这两个项目.

我真的很喜欢这两个项目,每个项目都是新存储库中的子目录.

  1. 我如何合并这两个项目?
  2. 这是一个好主意,还是应该将它们分开?

看来我应该能够从一个存储库推送到另一个存储库......也许这真的很直接?

jm.*_*jm. 69

我能够以这种方式组合我的两个存储库:

  1. 使用hg clone first_repository克隆库之一.
  2. 用于hg pull -f other_repository从其他存储库中提取代码.

-f上拉(力)标志是关键-它说,忽略了一个事实,这两个库是不是来自同一个源头.

以下是此功能的文档.

  • **@ Marcus Lindblom:**永远不会*改变它的哈希值.如果您在执行此操作后查看`hg glog`,您将看到有两个不相关的变更集行.每行中的第一个变更集没有父级,但这对Mercurial来说不是问题.一旦你拉出你想要为每一行创建一个新的变更集,你将所有东西都放到相应的子文件夹中,然后你合并这些行就可以了. (7认同)
  • 这是有效的,但你还需要运行`hg merge`来最终使一切正常 (6认同)
  • 供参考,以下是此过程的文档http://mercurial.selenic.com/wiki/MergingUnrelatedRepositories (2认同)

Geo*_*eng 7

从1.3(2009-07-01)开始,hg开始有了subrepo.早期版本不完整且不稳定,但现在它非常实用.

  • 可能值得注意的是,子库是官方最后的特色:http://mercurial.selenic.com/wiki/Subrepository(截至2013.11.12) (4认同)
  • 我发现subrepos是一种痛苦的工作.他们工作,但你必须跳过一些箍来让他们表现,如果你不小心,可能会引起很多麻烦. (2认同)