2010-03-01 13 views
3

我正在學習Mercurial,即使我安裝了TortoiseHG,我發現自己越來越多地轉向命令行。檢查實際承諾之前會做什麼

因此,我經常想在實際運行之前檢查一下給定的hg命令的結果。是否有任何與我可以使用的PowerShell中已知的-whatif切換器相同的內容,或者您​​將如何檢查使用給定的hg commit語句提交的內容?

+2

你究竟想知道什麼?你可以用'hg status'來檢查文件的狀態; 'hg help'是你的朋友 – Christoph 2010-03-01 17:09:30

+0

@Hauge:我一直使用「hg sta」(簡寫爲「hg status」)來查看文件狀態,以及「hg diff ...」以查看我做出的特定更改修改文件。 – SyntaxT3rr0r 2010-03-01 18:31:27

+0

我的問題是,我目前不完全確定文件選擇過程在提交時如何工作,即如果我使用通配符文件選擇參數進行提交,它只會從當前目錄下載提交,還是會提交reposistory中的整個目錄結構。 因此,我想有一種「這個命令將提交這些文件」功能。 – Hauge 2010-03-01 18:41:55

回答

2

當您提交時,您的消息編輯器將包含將在忽略部分中提交的文件列表。如果用hg -m "message"承諾這將無法工作作爲編輯步驟跳到:

HG: Enter commit message. Lines beginning with 'HG:' are removed. 
HG: Leave message empty to abort commit. 
HG: -- 
HG: user: User <[email protected]> 
HG: branch 'default' 
HG: changed myfile.yxy 

您可以使用hg commithg rollback撤消最後一次提交,如果它包含了,你沒有要提交的文件。只要你沒有hg push到另一個存儲庫,rollback就可以工作。

狀態使用與提交相同的模式。您可以使用hg status some/path/*,然後使用hg commit some/path/*只替換要使用的命令。

+0

我會嘗試這種方法,謝謝你的答案! – Hauge 2010-03-01 18:42:34

2

通常-n交換機或--dry-run交換機會告訴你一個特定命令會發生什麼。 commit沒有-n開關,但您可以運行hg diff查看實際更改,或者hg status查看每個文件的情況。

+0

在我看來,-n僅適用於影響遠程存儲庫的操作(例如,推/拉)。因此,「hg commit」沒有空轉,因爲「hg rollback」允許取消它。此外,「hg update」也沒有幹運行,因爲您可以隨時回到早期版本。所以,是的,我想「hg status」和「hg diff」是瞭解要實施什麼的方法。 – 2010-03-01 17:38:05

+1

使用'hg status'來獲得一個概覽,並用'hg diff '查看特定的文件;如果很多文件已經改變,一個簡單的'hg diff'可能難以閱讀 – Christoph 2010-03-01 18:00:47

+0

Only ...回滾是現在被棄用(我不能找到他們如何處理這方面的信息,只引用「我們做不同的折舊」) – 2017-03-08 08:50:15

相關問題