为存储库设置持久参考日期

为存储库设置持久参考日期

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

我能想到两种可能的解决方案:

  1. 编写一个 shell 函数/脚本hg来使用而不是hg直接调用,并将其添加--date到提交和其他需要它的命令中。它需要根据当前日期计算正确的日期。
  2. 创建一个虚拟机,并将其时钟设置为过去的某个时间,然后从那里执行所有 hg 提交。

相关内容