Mercurial: сообщение о многострочной фиксации в командной строке? - PullRequest
53 голосов
/ 24 января 2009

Как мне указать многострочное коммит-сообщение для mercurial в командной строке?

hg commit -m "* add foo\n* fix bar"

не работает. Журнал показывает:

changeset:   13:f2c6526e5911
tag:         tip
date:        Fri Jan 23 23:22:36 2009 +0100
files:       foobar.cpp
description:
    * add foo\n*fix bar

Ответы [ 7 ]

77 голосов
/ 24 января 2009

Mercurial: сообщение о многострочной фиксации включено командная строка?

Нажмите Enter.

$ hg commit -m "Did some work
> Now I'm done"

Одна из вещей заключается в том, что в журнале hg отображается только первая строка:

$ hg log
changeset:   0:d2dc019450a2
tag:         tip
user:        Aaron Maenpaa <zacherates@gmail.com>
date:        Sat Jan 24 07:46:23 2009 -0500
summary:     Did some work

... но если вы запустите "просмотр hg", вы увидите, что все сообщение там.

Отредактировано, чтобы добавить:

... но журнал hg -v показывает все сообщение:

$ hg -v log
changeset:   0:d2dc019450a2
tag:         tip
user:        Aaron Maenpaa <zacherates@gmail.com>
date:        Sat Jan 24 07:46:23 2009 -0500
files:       work
description:
Did some work
Now I'm done
16 голосов
/ 26 апреля 2013

С Windows cmd , выполните эту команду для многострочной фиксации.

hg commit -l con

Это позволяет вам вводить многострочное сообщение о фиксации прямо из командной строки. Чтобы закончить сообщение, нажмите Введите , и на отдельной строке нажмите Ctrl + Z и Введите еще раз.

Почему? Опция -l для hg commit говорит о необходимости прочитать сообщение о фиксации из файла, а con указывает, что файл фактически является консолью.

9 голосов
/ 24 января 2009

Если вы делаете это в интерактивном режиме (по сравнению со сценарием), просто сделайте hg commit без флага -m. Я не уверен, каково поведение в Linux или Mac, но в Windows появляется Блокнот с файлом, который вы заполняете и сохраняете для многострочного сообщения.

4 голосов
/ 17 октября 2012

Я знаю, что уже есть решение для пользователей Linux, но мне нужно было другое решение для командной строки Windows, поэтому я искал его ...

И я нашел один: https://www.mercurial -scm.org / pipermail / ртутный / 2011-ноябрь / 040855.html

hg commit -l filename.txt

Надеюсь, это кому-нибудь пригодится)

[EDIT] oO - к справке уже добавлено

-l --logfile ФАЙЛ читает сообщение о коммите из файла

2 голосов
/ 17 февраля 2009

Вот еще один способ, более близкий к тому, что вы пробовали сначала:

hg commit -m "$(echo -e 'foo\nbar')"
0 голосов
/ 17 марта 2018

В bash (начиная с версии 2.0):

hg commit -m $'foo\nbar'

(т. Е. Поставить знак доллара перед открывающей одинарной кавычкой, чтобы он анализировал escape-последовательности (например, \n) в строке - обратите внимание, что он не работает с двойными кавычками.)

0 голосов
/ 19 февраля 2018

Для Windows с PowerShell:

 hg commit --message "foo`nbar"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...