Как настроить "файл сообщения фиксации", сгенерированный "HG commit"?

когда я запускаю hg commit, Mercurial генерирует файл для моего сообщения фиксации, который выглядит следующим образом:

HG: Enter commit message.  Lines beginning with 'HG:' are removed.
HG: Leave message empty to abort commit.
HG: --
HG: user: Henri Wiechers <hwiechers@gmail.com>
HG: branch 'default'
HG: added a.txt

есть ли способ настроить этот файл? Я хотел бы включить, если рабочая копия имеет любые неизвестные файлы.

5 ответов


нет официального способа сделать это без изменения самого mercurial (не очень пугающе, это очень чистый Python), но вот способ сделать это, настроив editor задание вашего ~/.hgrc:

editor = hg status --unknown >! /tmp/unknown_list ; /usr/bin/vim -c "r /tmp/unknown_list"

то есть, конечно, vim на Linux специфичен, но то же самое можно сделать для любого приличного редактора на любой ОС.


Я хотел сделать это под Windows. Идея настройки настроек редактора в ini/.файл hgrc заставил меня подумать о замене команды редактора командным файлом.

например, если вы установите это в mercurial.ini:

[ui]
editor = c:\path\to\hgedit.cmd

затем hg вызовет командный файл и передаст имя временного файла в командной строке. Имя временного файла можно получить в командном файле с помощью параметра %1.

hgedit.cmd может быть чем-то например:

@echo off
hg status --unknown>>%1
notepad %1

Если вы хотите добавить вывод hg в качестве комментариев, Вы можете сделать следующее:

@echo off
echo HG: -->>%1
echo HG: Unknown files:>>%1
for /f "tokens=*" %%a in ('hg st --unknown') do echo HG: %%a>>%1
notepad %1

(вам, конечно, не нужно использовать блокнот.)


вариант ответа Джима Эгглстона для Mac/Linux... Я сделал скрипт под названием hg-commit-editor:

#!/bin/sh
hg status --unknown | sed -e 's|^|HG: |' >> 
editor 

а затем установите его в качестве редактора фиксации в моем hgrc:

[ui]
editor = hg-commit-editor

использовать hg commit -m "My message here". Вы также можете настроить редактор в своем Mercurial.ini или . Добавить следующее:

[ui]
editor = /path/to/your/favorite/editor

есть много способов сделать это. Некоторые даже перечислены на официальной вики. Это расширяет ответ @Ry4an. Вы можете добавить это в ваш ~/.hgrc

[ui]
editor = function hgvi { hg status --unknown | sed 's/^/HG: /g' >> ""; vi ""; }; hgvi