Установить постоянную контрольную дату для хранилища

0

hg commit Команда (и несколько других) обеспечивают --date возможность указать, какую дату вы хотите сохранить для фиксации. Например, я могу сделать это:

hg commit --date "Oct 27 2000"

Чтобы сделать вид, что я сделал изменения 13 лет назад.

Но я бы не хотел указывать --date опцию каждый раз, когда я фиксирую, и я хотел бы, чтобы прошедшее время между фиксациями было правильным. Есть ли способ, которым я могу сказать mercurial что-то вроде «Считайте этот момент прямо сейчас полночь 27 октября 2000 года» (например), и он будет автоматически корректировать все временные метки соответственно оттуда?

Например, если эта гипотетическая команда была вызвана 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
brianmearns
источник

Ответы:

0

Я могу придумать два возможных решения:

  1. Написать функцию оболочки / скрипт hg использовать вместо вызова hg непосредственно, и пусть это добавить --date совершать и другие команды, которые этого требуют. Это должно будет вычислить правильную дату от текущей даты.
  2. Создайте виртуальную машину и установите для нее время в прошлом и выполните все hg коммиты оттуда.
wingedsubmariner
источник