打印移植源变更集哈希

时间:2014-10-07 15:46:18

标签: mercurial transplant hg-log

我们已将一个变更集从另一个存储库移植到当前存储库。在我们看来,移植扩展将原始的changset哈希存储在一个额外的字段中,可以用hg log --debug显示,如:

changeset:   720:092506
tag:         tip
parent:      ...
parent:      ...
manifest:    ...
user:        ...
date:        ...
files:       ...
extra:       branch=default
extra:       transplant_source=\xe3>\xa7py\xff\xcda\x93d\xde\xa5\xb5\xa6\xf7\xed\xc0\x16\x82\xa3
description:
Bugfix, ...

这里原始的changset hash(transplant_source)不太可读和可用。 如何使用transplant_source命令以可读格式打印hg log

我使用ifeq and the list operator但没有成功。

1 个答案:

答案 0 :(得分:1)

恶心,并没有回答这个问题,但似乎有效(Python 2):: :)

hg log --debug | python -c "import sys, re; x=re.compile(r'^extra:\\s+transplant_source='); print '\\n'.join([l.split('=',1)[0]+'='+eval('\"'+l.split('=',1)[1].strip()+'\"').encode('hex') if x.match(l) else l.rstrip('\\n') for l in sys.stdin])"