关于TortoiseHg的简单问题

时间:2010-09-25 00:45:12

标签: mercurial tortoisehg

假设一个克隆了一个存储库,他的主要工作是在本地编辑它。正确的操作是什么,以便他可以在保持变化的同时与初始上游合并?即喜欢TortoiseSVN中的“更新”。

3 个答案:

答案 0 :(得分:2)

简短的回答是“拉”。从那里,你有两个选择

您可以简单地更新,就像使用svn一样,并且您的更改将保持本地和非版本化,或者您可以提交并将您的更改与您提取的头部合并。如果您不回退,那些合并将永远不会出现在中央仓库中,您将获得更改版本化且易于跟踪的额外好处。第二种方法更符合DVCS的精神。

答案 1 :(得分:1)

@Axelle Ziegler's answer中的两种方法是古老的“rebase vs. merge”决斗。

第一种方法需要更多解释。

首先,所有DVCS都鼓励频繁提交,这是与svn之类的CVCS相比的一个主要优势,因此当您想要与上游同步时,您的本地更改(应该)可能已经提交。如果您未提交,默认情况下hg update会尝试将您的更改合并到您要更新的修订版中。有关详细信息,请参阅hg help update(注意:-C要非常小心。)

现在,如果你在上游时确实有本地变更集,那么你将获得两个头(不是,而是你的存储库)。然后你必须决定是合并还是改组。

hg更喜欢并鼓励合并,因此不在核心中提供rebase,而是使用捆绑扩展来启用命令。

这个主题有很多好questions and answers。如果您想切入追逐,请阅读this blog中的链接,了解创作者所说的内容。

关于DVCS,几乎没有任何“简单”的问题:)

答案 2 :(得分:0)

我看到第三个带有“mq”扩展名的解决方案(“Mercurial Patch Queue”)。

使用此功能,您不会提交,只需创建并进一步刷新本地更改中的修补程序。在定期更新并更新工作副本之前,您将分离补丁,更新然后重新附加补丁。

通过这种方式,您可以管理自己在Patch Queue中完全隔离的更改,同时保持与世界变化的联系。