2011-03-02 84 views
15

什么时候你会使用hg exporthg bundle使用Mercurial hg bundle和hg export vs合并?

这些命令列在Mercurial快速入门guide上,但我们不清楚何时使用它们。

目前我们通过拥有不同的资源和合并来管理开发者。即:

cd myapp-1.01 
hg pull ../myapp-1.0 
hg merge 
hg commit 
hg push 

什么时候你会使用export和bundle而不是我们使用的方法?

回答

19

主要区别在于父变更集是否存在于目标存储库中。例如,如果你的源回购有这样的:

[A]--[B]---[C] 

和你的目的地有这样的:

[A]--[B] 

,你想送[C]你可以使用包(或只是推/拉)。

但是,如果你的目标资源库有:

[A]--[D] 

,你想[C]添加到它,你不得不使用导出和导入。

简而言之:bundle适用于当您要推/拉但没有良好的网络路径时,export适用于当您要发送变更集的逻辑内容而不是特定的确切变更集。

+1

补充@ Ry4an所说的话:一个bundle会将变更集插入到原始仓库中的相同位置,这意味着在新的仓库中(通常)会有一个新的仓库。 – Alex 2013-01-11 09:00:26

5
  • 包是更适合于变更的指定范围保存到轻松传送文件(如,通过电子邮件发送它们被应用到不同的存储库中的其他地方)。

    hg --help bundle

    束文件然后可以 使用常规手段 转移并施加到另一个存储库与 的分类定价或拉命令。这是 有用 当直接推入和拉动不可用时或者导出整个 存储库是不可取的。

  • 导出似乎为某些范围的变更集生成标题+差异列表,但helpfile没有提及这是否有助于自动将它们转移到其他地方。

    此外,导出的文件输出参数是根据修订版号等格式化的,这使我相信这个命令通常用于保存修订,使您更容易查看它们(作为文件)。

相关问题