#
#
# patch "ChangeLog"
# from [87c45f5e99dd50bd0ccade6313ae6ec5119a680b]
# to [6aaff09e173bf4c9a213703d1c69e14611412665]
#
# patch "cmd.hh"
# from [7142b69f986d070ea15a283a19fa16e4fb9edd59]
# to [e8800e57a6acc6a03997170266781e97d9a19304]
#
# patch "cmd_ws_commit.cc"
# from [016445f1951330fa7c359da43a467636de5a1529]
# to [d91beffea3f99a325b152c0a7160ba966f1592f9]
#
# patch "commands.cc"
# from [c9e6fdb67f72a37dc491317be70923b5c701748a]
# to [476c551a6311ecb8c6cf4d69665a63a258ad8eb3]
#
============================================================
--- ChangeLog 87c45f5e99dd50bd0ccade6313ae6ec5119a680b
+++ ChangeLog 6aaff09e173bf4c9a213703d1c69e14611412665
@@ -1,3 +1,13 @@
+2006-10-26 Richard Levitte
+
+ * cmd_ws_commit.cc (CMD(disapprove)): Make it possible to specify
+ extra message lines to be added after the standard "disapprove"
+ line, as well as author and date. Makes use of the following
+ change:
+ * commands.cc,cmd.hh (process_commit_message_args): Add an extra
+ parameter to have as a prefix of the user message. If the prefix
+ exists, there will always be a message containing it.
+
2006-10-24 Timothy Brownawell
Fix an epoch refinement bug. If we already have an epoch for a branch
============================================================
--- cmd.hh 7142b69f986d070ea15a283a19fa16e4fb9edd59
+++ cmd.hh e8800e57a6acc6a03997170266781e97d9a19304
@@ -136,7 +136,8 @@ process_commit_message_args(bool & given
void
process_commit_message_args(bool & given,
utf8 & log_message,
- app_state & app);
+ app_state & app,
+ utf8 message_prefix = utf8(""));
#define CMD(C, group, params, desc, opts) \
namespace commands { \
============================================================
--- cmd_ws_commit.cc 016445f1951330fa7c359da43a467636de5a1529
+++ cmd_ws_commit.cc d91beffea3f99a325b152c0a7160ba966f1592f9
@@ -188,11 +188,14 @@ CMD(disapprove, N_("review"), N_("REVISI
CMD(disapprove, N_("review"), N_("REVISION"),
N_("disapprove of a particular revision"),
- option::branch_name)
+ option::branch_name % option::message % option::msgfile % option::date %
+ option::author)
{
if (args.size() != 1)
throw usage(name);
+ utf8 log_message("");
+ bool log_message_given;
revision_id r;
revision_t rev, rev_inverse;
shared_ptr cs_inverse(new cset());
@@ -206,6 +209,9 @@ CMD(disapprove, N_("review"), N_("REVISI
guess_branch(r, app, branchname);
N(app.branch_name() != "", F("need --branch argument for disapproval"));
+ process_commit_message_args(log_message_given, log_message, app,
+ (FL("disapproval of revision '%s'") % r).str());
+
edge_entry const & old_edge (*rev.edges.begin());
app.db.get_revision_manifest(edge_old_revision(old_edge),
rev_inverse.new_manifest);
@@ -229,11 +235,15 @@ CMD(disapprove, N_("review"), N_("REVISI
dbw.consume_revision_data(inv_id, rdat);
cert_revision_in_branch(inv_id, branchname, app, dbw);
- cert_revision_date_now(inv_id, app, dbw);
- cert_revision_author_default(inv_id, app, dbw);
- cert_revision_changelog(inv_id,
- (FL("disapproval of revision '%s'")
- % r).str(), app, dbw);
+ if (app.date_set)
+ cert_revision_date_time(inv_id, app.date, app, dbw);
+ else
+ cert_revision_date_now(inv_id, app, dbw);
+ if (app.author().length() > 0)
+ cert_revision_author(inv_id, app.author(), app, dbw);
+ else
+ cert_revision_author_default(inv_id, app, dbw);
+ cert_revision_changelog(inv_id, log_message, app, dbw);
guard.commit();
}
}
============================================================
--- commands.cc c9e6fdb67f72a37dc491317be70923b5c701748a
+++ commands.cc 476c551a6311ecb8c6cf4d69665a63a258ad8eb3
@@ -451,7 +451,8 @@ process_commit_message_args(bool & given
void
process_commit_message_args(bool & given,
utf8 & log_message,
- app_state & app)
+ app_state & app,
+ utf8 message_prefix)
{
// can't have both a --message and a --message-file ...
N(app.message().length() == 0 || app.message_file().length() == 0,
@@ -459,7 +460,7 @@ process_commit_message_args(bool & given
if (app.is_explicit_option(option::message()))
{
- log_message = app.message;
+ log_message = message_prefix() + "\n\n" + app.message();
given = true;
}
else if (app.is_explicit_option(option::msgfile()))
@@ -468,8 +469,14 @@ process_commit_message_args(bool & given
read_data_for_command_line(app.message_file(), dat);
external dat2 = dat();
system_to_utf8(dat2, log_message);
+ log_message = message_prefix() + "\n\n" + log_message();
given = true;
}
+ else if (message_prefix().length() != 0)
+ {
+ log_message = message_prefix;
+ given = true;
+ }
else
given = false;
}