Answers:
当最简单的方法(new hg clone)不可行时,我使用hg strip:
% hg outgoing -l 1
% hg strip $rev # replace $rev with the revision number from outgoing
重复直到hg outgoing保持安静。请注意,这hg strip $rev消除$rev了它及其所有后代。
请注意,您可能必须先strip在Mercurial设置中启用。
PS:一种更聪明的方法是使用revset语言,然后执行以下操作:
% hg strip 'roots(outgoing())'
hg strip 'roots(outgoing())'因无法识别而无法上班'roots(outgoing())'。我能够与它合作hg strip "roots(outgoing())"。
                    cmd.exe。
                    您需要创建一个本地克隆,其中仅保留远程存储库中也存在的变更集。使用TortoiseHg,hg log或类似找出哪些你的修订是你最新的版本并没有使(开始混乱前一个)。hg outgoing在这里使用可以有所帮助-它将列出您所做的所有变更集-请先选择任何修订号。
如果调用了目标修订版,good而您的克隆称为foo,则执行以下操作:
hg clone -r good foo foo-clean
这将是一种快速的本地操作- 没有理由再次下载所有内容。该foo-clean克隆将只包含多达版本的变更good。现在foo-clean/.hg/hgrc,您可以替换foo/.hg/hgrc为以保留您的存储库本地设置,例如默认的推/拉路径。
当您满意foo-clean后foo,便可以删除foo并重命名foo-clean为foo。进行操作hg pull以将任何新更改集从远程存储库获取到您的克隆中,然后像往常一样继续。
如果没有人将新的变更集推送到远程存储库,那么按照good上面的方法确定要使用的修订版本非常简单:hg id default会告诉您远程存储库中提示的ID。
hg pull -r为每个其他分支的最新“良好”修订版。
                    好。因此,只需删除所有本地内容,hg init新的本地存储库和hg pull您拥有的最新提示。hg update在此之后不要忘记。
hg init+ hg pull= hg clone不同之处在于,hg clone它.hg/hgrc为您创建了一个不错的文件,并且hg clone在同一文件系统上进行克隆时将使用硬链接来节省空间。
                    hg help init是在这里:selenic.com/mercurial/hg.1.html#init但这也许太简洁了吗?如果您需要更多帮助,请发送邮件到我们的邮件列表!参见:mercurial.selenic.com/wiki/MailingLists