Bạn có thể làm điều đó một cách dễ dàng với MQ (Mercurial Queues):
Thiết lập một ngày repo xấu
+ 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 <[email protected]>
date: Thu Dec 03 00:00:00 2009 -0600
summary: third
changeset: 1:c1fe70008824
user: Ry4an Brase <[email protected]>
date: Wed Dec 02 00:00:00 2009 -0600
summary: second
changeset: 0:abb97adaa541
user: Ry4an Brase <[email protected]>
date: Tue Dec 01 00:00:00 2009 -0600
summary: first
Xoay changesets vào các bản vá lỗi trong hàng đợi
+ hg qimport -r 2
+ hg qimport -r 1
+ hg qimport -r 0
Hãy mỗi vá qtip lần lượt và sửa ngày
+ hg qrefresh -D
+ hg qpop
Now at: 1.diff
+ hg qrefresh -D
+ hg qpop
Now at: 0.diff
+ hg qrefresh -D
Áp dụng lại các bản vá lỗi
+ hg qpush
applying 1.diff
Now at: 1.diff
+ hg qpush
applying 2.diff
Now at: 2.diff
Bật mỗi vá lại vào changesets thực
+ hg qdel -r 0
+ hg qdel -r 1
+ hg qdel -r 2
Tất cả tốt hơn:
+ hg log
changeset: 2:6b51e14aadfc
tag: tip
user: Ry4an Brase <[email protected]>
date: Wed Feb 25 22:29:01 2009 -0600
summary: third
changeset: 1:5cbb9fc51bcc
user: Ry4an Brase <[email protected]>
date: Wed Feb 25 22:29:02 2009 -0600
summary: second
changeset: 0:ec58d1f24278
user: Ry4an Brase <[email protected]>
date: Wed Feb 25 22:29:02 2009 -0600
summary: first
Nguồn
2009-02-26 04:36:42
Một cách bản địa tốt (mặc dù đòi hỏi sự hiểu biết về MQ). Cảm ơn! –
Điều này đảo ngược cset thứ tự thời gian 2 dường như đã được cam kết trước khi cset 1. Tôi đề nghị các thủ tục sau đây: nhập khẩu; pop tất cả; đẩy, làm mới, đẩy, làm mới, đẩy, làm mới, xóa tất cả. Điều đó dường như làm các trick trong khi giữ lại dấu thời gian tiến bộ. –
Bạn có thể đặt ngày trên mỗi cái bạn muốn với qrefresh, vì vậy thực sự cả hai phương pháp đều hoạt động giống nhau. –