Я не верю, что Mercurial может автоматически разобрать diffstat outpu t и назначить цвета для его частей, но вы можете использовать обходной путь, выполняя разбор. Например. со следующим шаблоном:
hg log -T '{sub("(.*): (.*)/(.*)", "\\1: \033[0;32m\\2\033[0m/\033[0;31m\\3\033[0m", diffstat)}\n'
Заметим, что это жёстко ANSI цвета побегов (32 для зеленого, 31 для красного цвета). Если вы хотите сделать это с помощью меток, это также возможно, но намного медленнее (потому что diffstat нужно вычислять несколько раз). Этот подход по-прежнему может быть полезен для других ключевых слов, поэтому я все равно объясняю это. Вот пример шаблона:
{sub(":.*","",diffstat)}: \
{label("diff.inserted", sub(".*([+][0-9]+).*", "\\1", diffstat))}/\
{label("diff.deleted", sub(".*(-[0-9]+).*", "\\1", diffstat))}
Самый простой способ использовать такой длинный шаблон, чтобы поместить его в файл (например, ~/.hgtemplates/diffstat
), а затем использовать hg log -T ~/.hgtemplates/diffstat
. Если шаблон содержит слэш или обратную косую черту и соответствует существующему файлу, Mercurial будет рассматривать содержимое файла вместо этого. Длинные шаблоны также могут быть помещены в разделе шаблоны вашего .hgrc
, например .:
[templates]
diffstat = "{sub(":.*","",diffstat)}: \
{label("diff.inserted", sub(".*([+][0-9]+).*", "\\1", diffstat))}/\
{label("diff.deleted", sub(".*(-[0-9]+).*", "\\1", diffstat))}\n"
И затем можно использовать с соответствующим именем (например hg log -T diffstat
).