是否可以撤消意外 "hg unshelve"?
Is it possible to undo an accidental "hg unshelve"?
现在我的项目中多了几百行代码,分散在六行 类 上,我不希望逐一跟踪它们。
没有,但这是一个可以避免的问题
而不是hg shelve
,而是hg commit --secret
。这将在存储库中创建一个 "real" 提交,当您不再需要它时可以重新设置或删除 (hg strip
)。它也可以使用 hg histedit
或 hg fold
折叠到另一个变更集中(后者需要 Evolve 扩展,在撰写本文时它是实验性的,而前者是交互式的并且可能难以编写脚本)。
--secret
标志确保在您手动 运行 hg phase -d REV
变更集之前不会意外推送变更集。
是的,只需几个步骤。 unshelve 的帮助指定 "If a shelved change is applied successfully, the bundle that contains the shelved changes is moved to a backup location (.hg/shelve-backup)." 所以 hg update --clean 将 return 你到 pre-unshelve 状态,除非你同时添加了更改,在这种情况下你需要弄清楚如何在不需要的补丁之前恢复世界。然后,如果您希望在您喜欢的任何条件下基本上重新执行取消搁置,则可以单独重新应用存储在备份中的补丁。无论如何,备份包含您认为丢失的数据。
现在我的项目中多了几百行代码,分散在六行 类 上,我不希望逐一跟踪它们。
没有,但这是一个可以避免的问题
而不是hg shelve
,而是hg commit --secret
。这将在存储库中创建一个 "real" 提交,当您不再需要它时可以重新设置或删除 (hg strip
)。它也可以使用 hg histedit
或 hg fold
折叠到另一个变更集中(后者需要 Evolve 扩展,在撰写本文时它是实验性的,而前者是交互式的并且可能难以编写脚本)。
--secret
标志确保在您手动 运行 hg phase -d REV
变更集之前不会意外推送变更集。
是的,只需几个步骤。 unshelve 的帮助指定 "If a shelved change is applied successfully, the bundle that contains the shelved changes is moved to a backup location (.hg/shelve-backup)." 所以 hg update --clean 将 return 你到 pre-unshelve 状态,除非你同时添加了更改,在这种情况下你需要弄清楚如何在不需要的补丁之前恢复世界。然后,如果您希望在您喜欢的任何条件下基本上重新执行取消搁置,则可以单独重新应用存储在备份中的补丁。无论如何,备份包含您认为丢失的数据。