Mercurial: многострочное сообщение фиксации в командной строке?
Как я могу указать многострочное сообщение фиксации для 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
Ответы
Ответ 1
Mercurial: многострочное сообщение фиксации на командной строки?
Нажмите Enter.
$ hg commit -m "Did some work
> Now I'm done"
Одна из вещей заключается в том, что в hg log отображается только первая строка:
$ hg log
changeset: 0:d2dc019450a2
tag: tip
user: Aaron Maenpaa <[email protected]>
date: Sat Jan 24 07:46:23 2009 -0500
summary: Did some work
... но если вы запустили "hg view", вы увидите, что все сообщение есть.
Отредактировано для добавления:
... но hg -v log показывает все сообщение:
$ hg -v log
changeset: 0:d2dc019450a2
tag: tip
user: Aaron Maenpaa <[email protected]>
date: Sat Jan 24 07:46:23 2009 -0500
files: work
description:
Did some work
Now I'm done
Ответ 2
От Windows cmd выполните эту команду для многострочного фиксации.
hg commit -l con
Это позволяет вам вводить сообщение о фиксации нескольких строк прямо из командной строки. Чтобы закончить свое сообщение, нажмите Enter, а по отдельной строке удалите Ctrl + Z и Enter снова.
Почему? Опция -l
для hg commit
говорит, чтобы прочитать сообщение фиксации из файла, а con
указывает, что файл на самом деле является консолью.
Ответ 3
Если вы делаете это интерактивно (по сравнению с script), просто hg commit
без флага -m. Я не уверен, что такое поведение на Linux или Mac, но в Windows он выводит блокнот с файлом, который вы заполняете и сохраняете для многострочного сообщения.
Ответ 4
Я знаю, что уже есть решение для пользователей Linux, но мне нужно другое решение для командной строки Windows, поэтому я искал его...
И я нашел одно:
https://www.mercurial-scm.org/pipermail/mercurial/2011-November/040855.html
hg commit -l filename.txt
Надеюсь, это полезно для кого-то там,)
[EDIT]
oO - он уже добавлен в справку
-l -logfile FILE читать сообщение фиксации из файла
Ответ 5
Здесь другой способ, который ближе к тому, что вы пробовали вначале:
hg commit -m "$(echo -e 'foo\nbar')"