可解析的Hg日志格式

时间:2012-02-21 19:00:19

标签: php mercurial

我正在尝试解析hg log的输出。到目前为止,我只是做了一些简单的事情:

$arg_sep = '|||';
$entry_sep = ';;;';
$log = shell_exec("hg log -l 5  --template \"{rev}$arg_sep{node}$arg_sep{author}$arg_sep{date|hgdate}$arg_sep{parents}$arg_sep{files}$arg_sep{desc}$entry_sep\"");

然后爆炸它。我预计文件会出现问题。它们似乎是空间分离的。如果文件实际上包含空格怎么办,我该如何解析呢?

我可以以更易解析的格式获取日志吗? JSON会很好,但我似乎无法找到任何一个。

2 个答案:

答案 0 :(得分:3)

试试这个:

hg log --verbose --style=xml

它不是JSON,但它具体可解析,并且有简单的命令行工具来提取XML值。

答案 1 :(得分:1)

查看http://www.selenic.com/mercurial/hg.1.html#template-usage

你可以尝试

hg log -l 5  --style xml

然后尝试解析生成的xml。