2011-02-02 80 views
4

在更改xyz之前,您可以使用什麼mercurial命令查看變更集?hg命令在hg獲取之前查看變更集

如果你做hg log -r :xyz,你會看到所有在(包括)xyz之前的變更集 - 按升序列出。但我想輕鬆看到之前的變更集。


更新:真的我後是這樣的:如果我做一個hg fetch,我可以用什麼命令查看變更前的那個是由拉取的變更?

hg log -r :xyz其中xyz是由獲取作品引入的第一個變更集,但它返回了我剛想要最新的變更集的整個列表。

回答

7

你不能做到這一點。一旦你拉了(並且抓取只是拉+更新或者合併),那麼你沒有記錄你拉什麼以及你從拉取得什麼。

你應該做hg incoming然後再拉你看看你會得到什麼。

另外,請停止使用fetch。拉和更新和合並的行爲是完全分開的,在單個命令中執行這些操作會提供錯誤報告不充分的情況,並且會使事情混淆不清。該命令在默認情況下是禁用的,並且有關於完全刪除它的說法。合併編碼,它不應該被隱藏。

擴展到顯示的情況下,你不能覆蓋

如果抓取您的前史是這樣的:

[A]-[B]-[C] 

,你(對所有諮詢)fetch並獲得[D]你現在有:

[A]-[B]-[C]-[D] 

而且您可以看到具體的新功能:

hg diff -r tip-1 

或:

hg diff -r "parent(tip)" 

但如果用A,B,C重新開始你取並獲得d,E產生這樣的:

[A]-[B]-[C]-[D]-[E] 

沒有命令就可以運行看到「什麼改變了」,而沒有在之前的帖子上寫下[C]

如果,另一方面你的回購開始了尋找這樣的:

[A]-[B] 
    \ 
    -[C] 

和打水之後你有這樣的:

[A]-[B]-[D] 
    \ 
    -[C]-[E] 

沒有單一的命令,將告訴你「有什麼改變」。同樣,如果拉你的回購之前是這樣的:

[A]-[B]-[C] 

和打水之後你有這樣的:

[A]-[B]-[C]-[E]-[F] 
    \   /
    -[D]-------/ 

其中[F]是新不明智的自動合併變更取指創建,然後命令:

hg diff -r C 

會告訴你什麼是新的,但沒有先前寫下來沒有辦法查找'C'。

0

我假設xyz是散列形式的變更集。嘗試:

汞柱登錄-r:XYZ-1

這應該工作僅列出了變更前1

+0

變更集不是散列形式 - 這是數字ID – 2011-02-03 14:52:22

+0

它可以同時使用數字ID或散列形式。 – cbz 2011-02-03 17:36:09

0

隨着parentrevspec [1]安裝的擴展,您可以使用混帳的語法下面。根據您的shell,引號可能不是必需的。

hg log -r 'xyz^' 
  1. https://www.mercurial-scm.org/wiki/ParentrevspecExtension
+1

只有在啓用了parentrevspec擴展時纔有效。 – 2011-02-03 09:05:24

+0

似乎並沒有爲我工作.. – 2011-02-03 14:53:03

0

我不知道是什麼意思之前。你的問題可能意味着你可能只想要變更集的父母。這些你可以很容易地與

hg parent -r xyz 

這不需要花哨的新版本的mercurial。

汞父母[-r REV] [文件]

顯示工作目錄或修訂

打印工作目錄的父目錄修訂的父母。如果通過 -r/- rev給出修訂,則打印該修訂的父級。如果給出文件參數 ,則打印上次更改文件的修訂版(在 工作目錄修訂版之前或者給定了--rev參數(如果給出))。

選項:

-r --rev  show parents of the specified revision 
--style  display using template map file 
--template display with template 
--mq  operate on patch repository