2009-11-17 58 views

回答

25
$ hg parents --template="{node}\n" 
52b8cee1e59c91b9147635b7f44a3a8896ee0b00 

$ hexdump -n 20 -e '1/1 "%02x"' .hg/dirstate 
52b8cee1e59c91b9147635b7f44a3a8896ee0b00 

但是,爲什麼你不能只需撥打hg parents --template="{node}\n"

+5

我對你的二進制技能印象深刻:) – tonfa 2009-11-17 22:07:56

+3

嘿,我剛剛打開了dirstate.py並注意到父哈希是前兩個二十一字節部分dirstate.py。有點谷歌搜索給了我適當的hexdump格式化字符串(上帝這些事情是可怕的)。 – 2009-11-17 22:47:27

0

我不是一個好的專家,但是採取大錘的方法,併爲.hg中的當前修訂哈希執行grep只會產生一個可能的結果,那就是.hg/branchheads.cache

我相信這緩存了存儲庫的所有頭,所以它可能有多個條目。默認情況下,我認爲它總是有兩個條目,一個用於默認分支,另一個用於最終修訂版本號。

我認爲每當新的變更集到達時都會重建branchheads.cache,所以它應該始終具有正確的當前修訂散列。

+2

grep命令的二進制版本:)(它實際上是在'.hg/dirstate') – tonfa 2009-11-17 22:04:59

+1

不夠公平 - 我應該鎖定該大錘掉,搞腦子。 – Tom 2009-11-18 08:17:09

+0

問題在於它顯示了分支的頭部,並且如果您不在分支頭上,則顯示當前的rev時會顯示錯誤。 (如果提示和所有其他分支都更高,則通過'hg up 3') – Eric 2011-10-20 16:37:52

2

hg id --debug -i -r .

+2

問題「沒有打電話給hg」 – mjs 2014-05-19 13:15:39

相關問題