17
A
回答
11
你可以用MQ(水银队列)轻松地做到这一点:
设置了错误的日期回购
+ 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
打开的变更到补丁队列
+ 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
打开每个补丁回到现实的变更
+ hg qdel -r 0
+ hg qdel -r 1
+ hg qdel -r 2
要好:
+ 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
10
还有标志为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
补丁的应用程序,我没有在我的实践中使用且。
8
如果它只是一个单一的承诺,这承诺是最近一个(无论你在哪一个分支上),这样做的快速单线是:
hg commit --amend -d now
相关问题
- 1. 如何找出尚未推送或拉出的提交?
- 2. Git - 推送新提交并忽略未提交的更改
- 3. 如何放弃尚未提交的所有Mercurial更改
- 4. 从尚未推送的旧提交中移除文件(Git Extension)
- 5. 撤销更改(提交并推送)
- 6. Git:如何访问另一个提交文件,但尚未推送
- 7. 如何善变取消提交我的最后一次提交(尚未推)
- 8. 意外推送提交:更改git提交消息
- 9. 如何在形式不提交尚未
- 10. 基于旧提交推送更改,如何解决?
- 11. 如何提交并使用Git推送更改
- 12. 在远程提交和推送时放弃本地git更改
- 13. 使用LibGit2Sharp,Status命令是否显示已提交但尚未推送的更改?
- 14. 何时提交更改?
- 15. 如何检测提交可以推送
- 16. 修改推送提交的提交消息。 (Mercurial)
- 17. SVN:如何重新打造了创建但未提交尚未
- 18. 害怕git提交和推送会意外覆盖更改
- 19. 什么用于推送/提交从桌面到cPanel更改
- 20. Git:暂时还原推送提交
- 21. 如何部分恢复/修改推送提交?
- 22. 如何修改旧的现有推送提交?
- 23. 如何使不可提交的提交可以推送?
- 24. 每当有人提交更改时,如何向整个项目发送已提交更改的差异?
- 25. LINQ提交更改不提交更改
- 26. Github提交(推送)要点
- 27. 将修改提交推送到远程时出错
- 28. 如何解决Cayenne中的“提交时临时ID尚未被替换”
- 29. 当提交或推送到窑时自动标记变更集
- 30. 如何取消添加尚未提交的文件?
一个简单而干净的方式。谢谢! – 2009-02-26 12:09:56
您可以使用“hg strip”删除有问题的修订而不是克隆。 – skypher 2009-03-01 13:25:10