Как мне заставить mercurial показывать различия во время `hg com`? - PullRequest
6 голосов
/ 21 апреля 2010

Есть ли способ настроить hg com так, чтобы в файле сообщений о фиксации, который появляется во внешнем редакторе, вместо того, чтобы просто показывать, какие файлы были изменены (в строках HG:), он фактически отображает полный diff?Я предпочел бы просмотреть вывод и составить мое сообщение коммита одновременно с помощью моего текстового редактора, а не делать hg diff в командной строке отдельно заранее.

Ответы [ 3 ]

5 голосов
/ 14 ноября 2016

С 2016 года это можно сделать с помощью опции конфигурации committemplate.Добавление следующего к файлу hgrc будет включать diff во встроенном окне редактора при вводе сообщения фиксации.

[committemplate]
changeset = {desc}\n\n
    HG: {extramsg}
    HG: user: {author}\n{ifeq(p2rev, "-1", "",
   "HG: branch merge\n")
   }HG: branch '{branch}'\n{if(currentbookmark,
   "HG: bookmark '{currentbookmark}'\n")  }{subrepos %
   "HG: subrepo {subrepo}\n"              }
   {splitlines(diff()) % 'HG: {line}\n'}

См. hg help hgrc и ищите committemplate для получения дополнительной информации.

2 голосов
/ 21 апреля 2010

Mercurial не имеет этого в качестве встроенной функции, но его легко смоделировать в вашем редакторе (запускаемом с помощью commit).

Вот пример использования VIM: https://www.mercurial -scm.org/wiki/DiffsInCommitMessageInVIM

Сценарий хедитора https://www.mercurial -scm.org / hg / hg-stable / raw-file / tip / hgeditor предоставляет дополнительные примеры.

Основной jist:

  1. при запуске редактора hg diff перенаправление во временный файл
  2. ваш редактор загружает как файл сообщения фиксации, так и diff
1 голос
/ 21 апреля 2010

TortoiseHg делает это «из коробки»: верхняя панель для сообщения о коммите и под ней, левая панель со списком затронутых файлов и правая панель, показывающая различия, одна за другой.

...