2010-07-12 52 views
2

假設我正在開發一個項目,其中包含文件A,B和C.在我意識到某些需要清理之前,我通過添加一個功能,修改A和B來獲得一半的功能。由於這種情況,最好中斷清理功能。這涉及在A,B和C中進行更改。Mercurial/SVN:來自一組差異的多次提交?

完成該功能後,我想檢查我的代碼。有兩套不同的更改,可以這麼說:用於添加功能的那些和用於清理的那些。他們不以任何方式衝突。是否可以單獨提交這些更改,以獲得清潔的回購歷史記錄?

或者,如果我決定儘快檢查清理過程,但不想檢查A和B的中途完成功能,該怎麼辦?

我不確定是否可以在Mercurial或SVN中執行此操作,但我有興趣瞭解這兩者之一。 (TortoiseHg怎麼樣?)

回答

4

是的,你可以用Mercurial的hg record來做到這一點。它被認爲是一個擴展,但它是與常規軟件包一起分發的。基本上,你運行該命令,它會詢問你每個文件(你想從這裏提交任何東西?)。如果您說是,它會詢問您是否要提交每個大塊(一組行)。你也可以在特定的文件上運行它。例如:

hg record A B C 

在這種情況下,它不會打擾您詢問其他文件的更改。

對於每一大塊的選項有:

y - record this change 
n - skip this change 

s - skip remaining changes to this file 
f - record remaining changes to this file 

d - done, skip remaining changes and files 
a - record all changes to all remaining files 
q - quit, recording no changes 

? - display help 

EDIT:TortoiseHg具有稱爲Change Selection集成特徵,這基本上是一個GUI等效的record

1

crecord擴展提供了一個很好的詛咒界面,讓你選擇你要提交什麼掛起更改。

+0

有趣。這與TortoiseHg如何整合? – 2010-07-12 02:30:46

+0

@Rosarch:它沒有。 – sth 2010-07-12 02:41:08