Учитывая, что вы используете и используете hg commit --amend
, самый простой способ обмануть Mercurial - использовать редактор, который ничего не делает, оставляя файл сообщений неизменным и, следовательно, пригодным для использования:
$ hg --config ui.editor=true commit --amend
saved backup bundle to [long path redacted]
ЭтоMercurial действительно открывал «окно редактора» (или, в любом случае, команду редактора), просто этот - /bin/true
- сразу сказал, что «все работает», не касаясь интерактивного терминала.
Примечание: если в вашей среде установлено значение HGEDITOR
, это на самом деле переопределит ui.editor
:
def geteditor(self):
'''return editor to use'''
if pycompat.sysplatform == 'plan9':
# vi is the MIPS instruction simulator on Plan 9. We
# instead default to E to plumb commit messages to
# avoid confusion.
editor = 'E'
else:
editor = 'vi'
return (encoding.environ.get("HGEDITOR") or
self.config("ui", "editor") or
encoding.environ.get("VISUAL") or
encoding.environ.get("EDITOR", editor))
, поэтому:
HGEDITOR=true hg commit --amend
выполнитто же самое более надежно (и с немного меньшим набором текста), но это не упоминается в документации, где говорится, что HGEDITOR
устарело.