在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