有没有一种方法可以更改多个草稿变更集的提交日期?特别是最后一个之前的变更集。
我可以使用 `hg ci --amend -d xxx` 更改最后一次提交的提交日期,但无法更改早期的提交。
显然,这是非常困难的,因为变更集日期是变更集哈希的输入之一(顺便问一下,这在哪里有权威的文档记录?),因此在此处进行更改将更改所有变更集后代的哈希。 但是,由于这些是草稿变更集,所以这样做没问题。
似乎无法使用 `histedit` 进行此操作。
我猜测 `rebase` 可能能够做到这种事情,但相关的帮助文本没有给出任何指针,这表明它至少是不常见的。
(我正在尝试解决的问题是某些代码正在一台 deliberately 没有网络连接且经常重新启动的计算机上进行编辑和提交;这意味着它对系统时间的概念可能是错误的,并且有时非常错误-例如1970年!-除非有人记得手动设置系统日期为合理值。虽然这对提交图的拓扑结构并不重要,但至少对于每个人来说,如果日期与现实有关系,那将是很好的。因此,我希望在“推送之前审核”步骤中修复这个问题。)
我可以使用 `hg ci --amend -d xxx` 更改最后一次提交的提交日期,但无法更改早期的提交。
显然,这是非常困难的,因为变更集日期是变更集哈希的输入之一(顺便问一下,这在哪里有权威的文档记录?),因此在此处进行更改将更改所有变更集后代的哈希。 但是,由于这些是草稿变更集,所以这样做没问题。
似乎无法使用 `histedit` 进行此操作。
我猜测 `rebase` 可能能够做到这种事情,但相关的帮助文本没有给出任何指针,这表明它至少是不常见的。
(我正在尝试解决的问题是某些代码正在一台 deliberately 没有网络连接且经常重新启动的计算机上进行编辑和提交;这意味着它对系统时间的概念可能是错误的,并且有时非常错误-例如1970年!-除非有人记得手动设置系统日期为合理值。虽然这对提交图的拓扑结构并不重要,但至少对于每个人来说,如果日期与现实有关系,那将是很好的。因此,我希望在“推送之前审核”步骤中修复这个问题。)
hg commit --amend
只有在安装了 evolve 扩展的情况下才能使用。如果没有安装 evolve 扩展,hg 将拒绝修改具有子项的 changesets;因此,实际上这两种解决方案都需要 evolve 扩展,而不仅仅是第二种解决方案。我一直在等待使用该扩展,但听起来足够稳定,可以进行尝试性使用。但是要小心... - Norman Gray