在Git的當前版本的散列存儲在如何在不調用hg的情況下獲得當前的mercurial修訂版?
.git/refs/heads/master
是否有水銀等效不需要我在打電話給HG登錄-L1?我知道我可以在.hg/branch中獲得當前分支。
這是爲了在瀏覽網頁時在屏幕上「顯示」當前hg散列。
在Git的當前版本的散列存儲在如何在不調用hg的情況下獲得當前的mercurial修訂版?
.git/refs/heads/master
是否有水銀等效不需要我在打電話給HG登錄-L1?我知道我可以在.hg/branch中獲得當前分支。
這是爲了在瀏覽網頁時在屏幕上「顯示」當前hg散列。
$ hg parents --template="{node}\n"
52b8cee1e59c91b9147635b7f44a3a8896ee0b00
$ hexdump -n 20 -e '1/1 "%02x"' .hg/dirstate
52b8cee1e59c91b9147635b7f44a3a8896ee0b00
但是,爲什麼你不能只需撥打hg parents --template="{node}\n"
?
我不是一個好的專家,但是採取大錘的方法,併爲.hg中的當前修訂哈希執行grep只會產生一個可能的結果,那就是.hg/branchheads.cache
。
我相信這緩存了存儲庫的所有頭,所以它可能有多個條目。默認情況下,我認爲它總是有兩個條目,一個用於默認分支,另一個用於最終修訂版本號。
我認爲每當新的變更集到達時都會重建branchheads.cache,所以它應該始終具有正確的當前修訂散列。
我對你的二進制技能印象深刻:) – tonfa 2009-11-17 22:07:56
嘿,我剛剛打開了dirstate.py並注意到父哈希是前兩個二十一字節部分dirstate.py。有點谷歌搜索給了我適當的hexdump格式化字符串(上帝這些事情是可怕的)。 – 2009-11-17 22:47:27