=== modified file 'bzrlib/builtins.py' --- bzrlib/builtins.py 2008-06-25 10:06:48 +0000 +++ bzrlib/builtins.py 2008-06-25 13:38:22 +0000 @@ -2290,6 +2290,9 @@ Option('show-diff', help='When no message is supplied, show the diff along' ' with the status summary in the message editor.'), + Option('commit-msg', + help='When no message is supplied, show a predefined' + ' message with changed files in the message editor.'), ] aliases = ['ci', 'checkin'] @@ -2317,7 +2320,7 @@ def run(self, message=None, file=None, verbose=False, selected_list=None, unchanged=False, strict=False, local=False, fixes=None, - author=None, show_diff=False): + author=None, show_diff=False, commit_msg=False): from bzrlib.errors import ( PointlessCommit, ConflictsInTree, @@ -2355,11 +2358,24 @@ def get_message(commit_obj): """Callback to get commit message""" my_message = message + txt = u"" if my_message is None and not file: t = make_commit_message_template_encoded(tree, selected_list, diff=show_diff, output_encoding=bzrlib.user_encoding) - my_message = edit_commit_message_encoded(t) + if commit_msg: + changes = tree.changes_from(tree.basis_tree()) + action = ("added", "modified", "removed") + for i in action: + a = getattr(changes, i, []) + for x in a: + txt += u"* %s %s:\n" %(i, x[0]) + for i in getattr(changes, "renamed", []): + txt += u"* renamed %s => %s" %(i[0], i[1]) + my_message = edit_commit_message_encoded(t, + start_message=txt) + else: + my_message = edit_commit_message_encoded(t) if my_message is None: raise errors.BzrCommandError("please specify a commit" " message with either --message or --file") @@ -2369,7 +2385,7 @@ if file: my_message = codecs.open(file, 'rt', bzrlib.user_encoding).read() - if my_message == "": + if my_message == txt: raise errors.BzrCommandError("empty commit message specified") return my_message