По умолчанию все файлы, измененные в наборе изменений, находятся в одной строке, что делает их очень легко пропускать один или два и трудно читать.
Как сделать каждое показ файла в отдельной строке?
По умолчанию все файлы, измененные в наборе изменений, находятся в одной строке, что делает их очень легко пропускать один или два и трудно читать.
Как сделать каждое показ файла в отдельной строке?
Реальный способ увидеть информацию об измененных файлах - использовать hg status
. Это показывает файлы, которые были изменены в версии 100:
$ hg status -c 100
Но если вы хотите иметь также сообщения журнала, то hg log
, конечно, является естественной отправной точкой. К сожалению, нет встроенного коммутатора, который будет отображать один файл на строку.
Однако вывод hg log
контролируется системой шаблонов, и вы можете написать для него свои собственные стили. Стиль по умолчанию здесь, и вы можете настроить его на то, что вы хотите, изменив
file = ' {file}'
к
file = '{file}\n'
Затем сохраните новый стиль как my-default.style
и добавьте
[ui]
style = ~/path/to/my-default.style
в файл конфигурации. Это дает вам один файл на строку и даже работает, когда в именах файлов есть пробелы.
Я знаю одну проблему: вы теряете цвета в выводе hg log
. Оказывается, Mercurial обманывает здесь! На самом деле он не использует шаблон по умолчанию, который я вам показывал при генерации вывода журнала. Он вообще не использует какую-либо систему шаблонов, он просто генерирует вывод с использованием прямого кода, так как это быстрее. Проблема в том, что расширение цвета работает только с жестко закодированным шаблоном. Когда вы переключаетесь на пользовательский шаблон и тем самым вызывают механизм шаблона, вы теряете цветной вывод.
Однако вы можете восстановить цвета, вставив коды удаления ANSI непосредственно в ваш шаблон (в Unix-подобных системах). Изменение
changeset = 'changeset: {rev}:{node|short}\n{branches}...
к
changeset = '\033[33mchangeset: {rev}:{node|short}\033[0m\n{branches}...
делает трюк и жестко закодирует желтую строку заголовка для набора изменений. Откорректируйте линии changeset_verbose
и changeset_quiet
, и у вас будет цветной вывод с вашим собственным шаблоном.
Файл hg template help содержит этот камень в своих примерах.
Списки форматов, например. файлов:
$ hg log -r 0 --template "files:\n{files % ' {file}\n'}"
Это работает на Windows без перевода.
Я считаю, что для этого нет встроенного способа, но немного sed (также доступен для Windows: http://gnuwin32.sourceforge.net/packages/sed.htm) может помочь:
hg log --template "Rev: {rev}:{node}\nDate: {date|isodate}\nFiles: {files}\n\n" -l 10 | sed -e '/^Files:/s/ /\n /g'
Вывод:
Rev: 1:2538bd4661c755ccab9b68e1d5e91144f6f97d33
Date: 2011-12-20 15:47 +0100
Files:
test1.txt
Rev: 2:853a6f3c505308c9babff5a5a2f1e09303f1689c
Date: 2011-12-20 15:44 +0100
Files:
test2.txt
test3.txt
Объяснение sed -e '/^Files:/s/ /\n /g'
:
/^Files:/
ищет строки, начинающиеся с "Files:", и применяет следующий поиск и заменяет только те строкиs/ /\n /g
заменяет все строки на новую строку, а затем пробелы.Это решение не будет работать, если имена файлов содержат пробелы.
hg log --style changelog
ИЛИ
hg log --template "Description: {desc}\n"
- поддерживаются такие ключевые слова, как desc, files и т.д. здесьЧтобы просмотреть все файлы, которые были изменены в версии, используйте:
hg status --change REV