формат ртутного журнала с статусами файлов - PullRequest
4 голосов
/ 12 мая 2011

Мне было интересно, как мне вернуть файлы, добавленные / измененные / удаленные для фиксации, в таком формате:

<modifier> file
<modifier> path/to/a/file
<modifier> path/to/another/file

В git я делаю это: "git show --pretty =" format: "--name-status commitish" и получаю:

D       file
A       path/to/a/file
M       path/to/another/file

Для Mercurial я не могу понять, как это сделать с помощью шаблонов. У меня есть файл стиля:

changeset = "{file_mods}{file_adds}{file_dels}"
file_add  = "A {file_add}\n"
file_mod  = "M {file_mod}\n"
file_del  = "D {file_del}\n"

и с этим стилем и командой "hg log -r commitish --style ~ / .hgstyle" я получаю почти что я хочу:

M path/to/another/file
A path/to/a/file
D file

Есть еще одна проблема с Mercurial - файлы не отсортированы в хорошем порядке.

Как получить тот же результат, что и для команды git (с модификаторами и правильно отсортированной) на mercurial?

Ответы [ 4 ]

1 голос
/ 12 мая 2011

Попробуйте это:

hg stat --change THE_REV_YOU_WANT
0 голосов
/ 21 марта 2014

Добавьте это к вашему .hgrc файлу

[alias]
prettylog = log -r : --template "{rev} | {date|shortdate} | {desc|strip|firstline}\n{file_dels % '  - {file}\n'}{file_adds % '  + {file}\n'}{file_mods % '  ~ {file}\n'}\n"

Будет напечатан аккуратно отформатированный вывод, подобный этому (2 - число оборотов):

2 | 2014-03-21 | my new log format
  - js/remove_me.js
  + js/add_me.js
  ~ doc/modified_me.txt
  ~ www/index.html
0 голосов
/ 12 мая 2011

Не существует прямого способа использования шаблонизатора, но вы можете попробовать:

hg log --style ~/.hgstyle -r <rev> | sort -k2

Это позволит отсортировать выходные данные команды log во втором столбце данных (то есть именах файлов).

0 голосов
/ 12 мая 2011

Возможно, я не правильно понял, но если вы хотите сначала удалить, а затем добавить и, наконец, внести изменения, просто измените первую строку вашего файла стиля:

changeset = "{file_dels}{file_adds}{file_mods}"

Вы также можете добавить табуляцию (\t) вместо пробела, если хотите быть ближе к внешнему виду Git:

file_add  = "A\t{file_add}\n"
...