參照你的例子情況,這裏是我會做什麼(以下Ry4an的策略,只是承諾你目前正在使用的東西,但不希望已發佈):
應該開始工作在這樣的存儲庫中:
$ hg status -A
C f1
C f2
$ hg glog
@ changeset: 1:7f3c6c86a92f
| tag: tip
| summary: add f2
|
o changeset: 0:03ca1e6d5b86
summary: initial
這就是有2個文件和2個提交/變更集。你做了一些工作,比方說增加新的功能,然後你的工作副本可能是這樣的:
$ hg status
M f2
? f3
? f4
有2個新的和1修改後的文件。現在,您必須修復一個您還需要在遠程存儲庫中進行任何新更改的錯誤。通過提交快照您目前的工作和拉遠程變化(在命令你做不要緊,一拉在默認情況下不碰你的工作拷貝的狀態):
$ hg commit -A -m "snapshot feature work"
$ hg pull
這可能導致歷史是這樣的:
o changeset: 3:2284ba62de07 <-- just pulled in
| tag: tip
| parent: 1:7f3c6c86a92f
| summary: edit f1
|
| @ changeset: 2:4a19d371a04f <-- your interrupted work
|/ summary: snapshot feature work
|
o changeset: 1:7f3c6c86a92f
| summary: add f2
|
o changeset: 0:03ca1e6d5b86
summary: initial
現在你可以更新到/簽出修訂3,並開始修復bug:
$ hg update 3
.. fix the bug ..
$ hg commit -m "fix a bug"
$ hg glog --limit 3
@ changeset: 4:5d3d947fb4af
| tag: tip
| summary: fix a bug
|
o changeset: 3:2284ba62de07
| parent: 1:7f3c6c86a92f
| summary: edit f1
|
| o changeset: 2:4a19d371a04f
|/ summary: snapshot feature work
:
看起來不錯,讓我們把你的修正,即使其生活,而不要發佈您的中間工作:
$ hg push -r 4
這推動領先於修訂4,你的bug修正所有更改,但在你的本地倉庫沒有其他分支。您也可以使用-r .
,它指的是您的工作副本的父修訂版,即您剛剛提交的修訂版。
最後,你可以回到你的特點的工作,並繼續您的工作:
$ hg update 2
.. work, commit, work, commit ..
.. finally merge with the other branch, e.g. revision 4
這些步驟都是在命令行上,但我認爲這是不是要拼命的一般概念適應相應的點擊Eclipse Mercurial插件。
一些額外的注意事項:
- 你可能想書籤快照提交,所以你不需要使用版本編號或數字工作。
- 如果您想稍後在單次提交中發佈您的功能,請在完成後使用摺疊擴展名。
請告訴我們您正在使用的貨架文件以及您遇到問題的部件。 –
[Mercurial可用性]的可能重複(http://stackoverflow.com/questions/6390436/mercurial-usability)。 @Jason:如果你只是想重新回答你的問題,請使用'edit'按鈕,不要發佈新的問題。 – Gilles
我找不到任何有關在Mercurial Eclipse中使用MQ擴展的文檔。我已經閱讀了這個文檔[鏈接](http://mercurial.selenic.com/wiki/MqTutorial)'MqTutorial'。我想我不明白如何使用補丁和工作流程。我會在我的問題中添加一個我想要做的例子。 – Jason