Reputation: 16321
Is there a way to configure hg com
so that in the commit message file that pops up in the external editor, instead of just showing which files were changed (in the HG:
lines) it actually shows the full diff? I'd rather view the output and compose my commit message simultaneously from the comfort of my text editor as opposed to doing hg diff
on the command line separately beforehand.
Upvotes: 8
Views: 992
Reputation: 17132
TortoiseHg does this out of the box: a top panel for the commit message and below that, a left pane listing the affected files and a right pane showing the diffs, one after the other.
Upvotes: 0
Reputation: 78330
Mercurial doesn't have that as a built-in feature, but it's easy to simulate in your editor (as launched by commit).
Here's an example using VIM: https://www.mercurial-scm.org/wiki/DiffsInCommitMessageInVIM
The hgeditor script https://www.mercurial-scm.org/hg/hg-stable/raw-file/tip/hgeditor provides further examples.
The basic jist is:
hg diff
redirecting to a temp fileUpvotes: 2
Reputation: 5580
As of 2016, it's possible to do this with the committemplate
configuration option. Adding the following to an hgrc
file will include the diff in the editor window inline as you type your commit message.
[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'}
See hg help hgrc
and search for committemplate
for more information.
Upvotes: 6