首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将mercurial存储库从特定版本/推送中裁剪出来

如何将mercurial存储库从特定版本/推送中裁剪出来
EN

Stack Overflow用户
提问于 2010-09-24 16:29:38
回答 2查看 378关注 0票数 2

在我最近的4-5次修改/推送到主库中,我破坏了一些代码。现在,我想完全删除这个推送,并从这一点开始我的存储库的头。我该怎么做呢?在SVN中有一个转储命令,它将整个存储库从一个修订版复制到另一个修订版。在Mercurial或其他方式中有一些替代品吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-24 23:56:32

Quardas,“完全删除”不是mercurial默认词汇表的一部分。这是一个围绕着不可变的历史而建立的系统。你可以逆转你后悔的事情,但你不能删除它。想象一下,一位科学家在他/她的实验室里用笔在日志的编号页上写字--撕下一页被认为是欺诈。保留你的盲目和错误是有价值的,只要你记得不要再尝试这样的事情。

考虑使用hg backout,它可以方便地自动添加变更集的倒数,从而完全撤消变更集,但同时保留变更集及其反转的记录。

如果你真的不相信这个概念,那就试试clone -r吧。它允许您将存储库克隆到某个特定的点。例如:

代码语言:javascript
运行
复制
hg clone -r -6 myrepo partial-myrepo
mv myrepo myrepo-with-stuff-I-regret
mv partial-myrepo myrepo

这将用省略最后五个变更集的新副本替换您的存储库。

使用不属于mercurial默认工具集的工具(例如histedit、strip、mercurial queues等扩展),还有很多其他方法可以做同样的事情。但你最好不要删除历史记录,如果你这样做了,你最好不要删除历史记录,不要删除扩展名。

票数 2
EN

Stack Overflow用户

发布于 2010-09-24 19:46:34

您可以使用convert extension来做到这一点。

虽然,我真的不明白为什么人们总是想在他们的VCS历史中隐藏/删除他们犯了错误。只要你在新的版本中修复它,它就不那么关键了……

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3785397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档