Mercurial 帮助文本说,“strip 命令删除指定的变更集及其所有后代”。对我来说,这听起来很像改写历史,如果有人将他的工作基于突然被删除的变更集之一,它一定会引起问题。但帮助文本还说该命令“不是历史重写操作,可用于公共阶段的变更集。” 我确信编写帮助文本的人非常清楚他在做什么,那么我缺少什么来理解这一点?
问问题
601 次
2 回答
1
我不能肯定地说,但我猜它是“祖父”。hg strip
开始作为mq
其中的一部分,比增加阶段至少早三年。
可能更好的措辞是:
不是*考虑*历史重写操作,可用于公共阶段的变更集
在添加阶段时,我们会非常小心地破坏任何人的现有工作流程。提交从草稿阶段开始,一旦推送就会公开。任何阶段感知命令都知道,在推送提交的阶段之后是公开的,并且如果它不允许修改(除非推送到非发布存储库......)。
但是,有些人已经在使用strip
手动和脚本来删除已推送的变更集,如果strip
在升级后突然说“嘿,你不能剥夺它是公开的!” 那么这些人的向后兼容性承诺就会被打破。
Phases 正在慢慢成长为一个相当惊人的进化系统,在几乎所有情况下,这将是比 mq 更好的选择,但我仍然怀疑我们是否会让 Matt 删除 mq 并剥离——他仍然坚持保持与 Python 2.4 兼容代码库,那是 9 岁!
Tl;Dr:尽管strip
它一直是一个禁用的扩展程序,但有太多人使用它来改变它的行为,随着阶段的到来。
于 2012-12-07T03:18:32.793 回答