Как я изменяю время фиксации (не продвинутый уже)?

Заменить код

league = 'premier_league'
shots.update({'league': league})

на приведенный ниже код

league = 'premier_league'
for shot in shots:
    for d in shots[shot]:
        d.update({'league': league})
19
задан tshepang 20 April 2016 в 09:51
поделиться

2 ответа

Можно сделать это легко с MQ (Подвижные Очереди):

Настроенный плохая дата repo

+ hg init
+ echo line
+ hg commit -A -d 12/1 -m first
adding file
+ echo line
+ hg commit -A -d 12/2 -m second
+ echo line
+ hg commit -A -d 12/3 -m third
+ hg log
changeset:   2:81c88de729a8
tag:         tip
user:        Ry4an Brase <ry4an@mini>
date:        Thu Dec 03 00:00:00 2009 -0600
summary:     third

changeset:   1:c1fe70008824
user:        Ry4an Brase <ry4an@mini>
date:        Wed Dec 02 00:00:00 2009 -0600
summary:     second

changeset:   0:abb97adaa541
user:        Ry4an Brase <ry4an@mini>
date:        Tue Dec 01 00:00:00 2009 -0600
summary:     first

Превращает, changesets в патчи в очереди

+ hg qimport -r 2
+ hg qimport -r 1
+ hg qimport -r 0

Делают каждый патч qtip в свою очередь и назначают дату

+ hg qrefresh -D
+ hg qpop
Now at: 1.diff
+ hg qrefresh -D
+ hg qpop
Now at: 0.diff
+ hg qrefresh -D

, Повторно применяются, патчи

+ hg qpush
applying 1.diff
Now at: 1.diff
+ hg qpush
applying 2.diff
Now at: 2.diff

Возвращают каждый патч в реальный changesets

+ hg qdel -r 0
+ hg qdel -r 1
+ hg qdel -r 2

Все лучше:

+ hg log
changeset:   2:6b51e14aadfc
tag:         tip
user:        Ry4an Brase <ry4an@mini>
date:        Wed Feb 25 22:29:01 2009 -0600
summary:     third

changeset:   1:5cbb9fc51bcc
user:        Ry4an Brase <ry4an@mini>
date:        Wed Feb 25 22:29:02 2009 -0600
summary:     second

changeset:   0:ec58d1f24278
user:        Ry4an Brase <ry4an@mini>
date:        Wed Feb 25 22:29:02 2009 -0600
summary:     first
11
ответ дан 30 November 2019 в 03:53
поделиться

Существует --date флаг для hg commit, это - то, как Вы перезаписываете время фиксации. Вопрос состоит в том, как вернуть более ранние изменения без инструмента много боли.

Позволяют нам предположить, что Вы получаете следующую историю локальных фиксаций:

dir1> hg commit # r100, OK
dir1> hg commit # r101, need to fix time
dir1> hg commit # r102, need to fix time

Вот мое решение:

hg diff -r100:101 > 101.diff
hg diff -r101:102 > 102.diff
cd ..
hg clone -r100 dir1 dir2 # create a copy just before changesets than needs to be fixed
cd dir2
patch -i ../dir1/101.diff
hg commit -m "Same commit message" --date="required date"
patch -i ../dir1/102.diff
hg commit -m "Same commit message" --date="required date"
cd ..
rm -rf dir1 &&  mv dir2 dir1 # replace working copy

можно автоматизировать приложение патчей с hg patch, который я еще не использовал в своей практике.

10
ответ дан 30 November 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: