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

185
brianmearns

Команда 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 
0

1 ответ на вопрос

0
wingedsubmariner

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

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