2009-11-17 59 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

相关问题