2011-07-05 18 views
2

將變更集推送到名爲'A'的存儲庫後,如何查看當我處於'A'時等待應用的變更集列表?如何顯示Mercurial中未應用的變更集列表

擴展上,

  1. 在回購B I推到的變更回購乙
  2. 我改變回購乙
  3. 我怎麼能列出的變更在步驟1推?
+0

您是在最近被推入回購的變更集列表之後? – icabod

+0

這會滿足我當前的需求。 –

+0

「等待申請」是什麼意思? –

回答

7

不確定你的意思是「未應用」的變更集,但這裏有一些想法。

在執行hg push之前,您可以通過執行hg outgoing來輕鬆查看將更改集推送到存儲庫的方式。這將列出將使用默認選項推送的所有變更集。

同樣,您可以在目標資源庫中使用hg incoming來顯示將從另一個回購庫中提取的變更集。

至於「未應用」的變更集,如果我假設您的意思是比工作目錄更新的變更集,您可以使用hg log -r .:tip,這應該(我沒有機會測試它)顯示所有較新的修訂版,但實際上並不是所有最近推動的。

編輯:我已經將-r選項中的修訂集更新爲應該工作的內容。看看Mercurial manpage的更多可能性。

+0

語法錯誤:hg log -r「parents():」 hg:解析錯誤:缺少參數 –

+0

對不起,我是從內存中寫出這部分內容 - 我目前在沒有Hg的機器上,所以無法提供一個更正:( – icabod

+0

我試過別的東西 - 當我以後回家時,我會在真正的系統上嘗試它,而不是使用半受教育的猜測:) – icabod

5
$ hg summary 
parent: 0:9f47fcf4811f 
. 
branch: default 
commit: (clean) 
update: 2 new changesets (update) <<<<< 

update位告訴你什麼(我想)你想要的。

+1

+1,因爲我沒有注意到之前的一個:) – icabod

0

我已經寫了一個不同的答案,但我最終得到了一個更好的方式來做這裏需要的東西(一個更好的和最終的 - 對我來說 - 解決方案是在這篇文章的末尾,在[編輯]部分)。使用hg log

具體而言,首先發出hg sum命令。這會給我:

parent: 189:77e9fd7e4554 
<some commit message> 
branch: default 
commit: (clean) 
update: 2 new changesets (update) 

要看看那些2名新的變更是由我使用

hg log -r tip -r 2 -v 

顯然,2是與變更該hg sum報告的數量來代替。

這是可行的,因爲tip將引用最近(或「未應用」)的變更集。通過將輸出限制爲最新的兩項更改(-l 2),僅顯示我感興趣的那些變更集的信息。使用-v時,也會顯示受變更集影響的文件列表。

爲了讓事情變得更簡單,我在.bashrc文件中定義的用戶命令:

alias hglog="hg log -r tip -l $1" 

這讓我輸入hg sum(獲得掛起/未應用的變更的數量),然後鍵入hglog x哪裏x是由hg sum顯示的變更集的數量。

這樣做可能有更完整的方法,例如使用自定義模板,但我認爲它在推動複雜性方面推動了太多。

[編輯](第三次迭代) 我已經通過擴展別名想法達到最滿意的回答這個問題,讓我不再需要鍵入hg sum。我的.bashrc文件現在包含此:

show_pending_changesets() { 
    nb=$(hg sum | grep "update:" | sed 's/update: \([0-9]*\) .*/\1/'); 
    if [ `expr $nb + 1 2> /dev/null` ] ; then 
    hg log -r tip -v -l $nb 
    else 
    echo "Nothing new to report" 
    fi ; 
} 
... 
alias hgwhatsnew=show_pending_changesets 

說明:我使用sed提取變更集從最後一行的數字(這是與update:開始一個)的hg sum輸出。然後該號碼被輸入到hg log。我所要做的就是輸入hgw並完成它。 HTH

相關問題