One thing missing from cadmium is anything like the wx ability to store
pending sccs delta comments in the active file.
I spent a little time on my flight back from California last night
cobbling together a mercurial extension which provides the capability to
store a pending commit message in a repo.
I was actually pleasantly surprised at how easy this was.
The extension adds a new command, "hg message", which manipulates the
pending message, and interposes on several commands which take commit
messages as arguments to use that pending message as the default/initial
editor buffer content.
It adds -D and -E options to commands that have -l and -m; "-D" takes
the pending commit message as-is, while -E forces you into the editor
(which could be useful with -l).
I'm not sure what the appropriate way to distribute this (and what
license to drop into it, yadda yadda), and I haven't hooked it up to
cadmium recommit, but here's a teaser:
% mkdir xx
% cd xx
% hg init
% echo foo >foo
% hg message -m foo
% hg message
foo
% hg add foo
% hg commit -D
% hg log -v
changeset: 0:501629b8acdb
tag: tip
user: Bill Sommerfeld <sommerfeld at sun.com>
date: Thu Jun 19 13:03:58 2008 -0400
files: foo
foo
% hg help message
hg message [OPTION]...
view, change, or edit the pending commit message.
With no options, display the pending commit message.
With -m or -l, set the pending commit message.
With -E, start the configured editor to edit the pending commit
message.
options:
-m --message use <text> as saved commit message
-l --logfile read saved commit message from <file>
-E --edit edit saved commit message
use "hg -v help message" to show global options
% hg help commit
hg commit [OPTION]... [FILE]...
aliases: ci
commit the specified files or all outstanding changes
Commit changes to the given files into the repository.
If a list of files is omitted, all changes reported by "hg status"
will be committed.
If you are committing the result of a merge, do not provide any
file names or -I/-X filters.
If no commit message is specified, the configured editor is started
to
enter a message.
See 'hg help dates' for a list of formats valid for -d/--date.
options:
-A --addremove mark new/missing files as added/removed before
committing
-I --include include names matching the given patterns
-X --exclude exclude names matching the given patterns
-m --message use <text> as commit message
-l --logfile read commit message from <file>
-d --date record datecode as commit date
-u --user record user as committer
-D --defmessage Use default commit message
-E --force-editor Always start editor on commit message
use "hg -v help commit" to show global options
% hg message -m "foo"
% hg message
foo