该hg commit
命令(以及其他几个命令)提供了--date
指定要为提交存储的日期的选项。例如,我可以这样做:
hg commit --date "Oct 27 2000"
假装这些改变是我13年前做的。
但我不想--date
每次提交时都指定选项,而且我希望提交之间的时间间隔是正确的。有没有办法告诉 mercurial 类似“假设此时此刻是 2000 年 10 月 27 日午夜”(例如),然后让它自动调整所有时间戳?
例如,如果调用这个假设的命令date
,那么它可能看起来像这样:
> date
Mon Oct 28 20:00:00 EDT 2013
> hg date "Oct 27 2000 00:00:00"
>
> #edit some files
> date
Mon Oct 28 20:30:00 EDT 2013
> # 30 minutes have elapsed
>
> hg ci
> hg log
changeset: 0:2f0b7f53d6e1
tag: tip
user: sh1ftst0rm
date: Sun Oct 27 00:30:00 2000 -0400
>
> #edit some more files
> date
Mon Oct 28 21:15:00 EDT 2013
> # Another 45 minutes has elapsed, 1h15m since hg date was set.
>
> hg ci
> hg log
changeset: 1:a92497e622e9
tag: tip
user: sh1ftst0rm
date: Sun Oct 27 01:15:00 2000 -0400
changeset: 0:2f0b7f53d6e1
user: sh1ftst0rm
date: Sun Oct 27 00:30:00 2000 -0400
答案1
我能想到两种可能的解决方案:
- 编写一个 shell 函数/脚本
hg
来使用而不是hg
直接调用,并将其添加--date
到提交和其他需要它的命令中。它需要根据当前日期计算正确的日期。 - 创建一个虚拟机,并将其时钟设置为过去的某个时间,然后从那里执行所有 hg 提交。