# # # patch "cmd_diff_log.cc" # from [a619acf2b7a88bff426553ac7f5aea679047ba35] # to [9e10a7a7d934de2d45d2675e95880e113ea32cb8] # # patch "cmd_ws_commit.cc" # from [ca903e187f3cf617bf5ab1abbab65f36fc8b2b8b] # to [388166b33195e7202dc63d0f762ab4b47d19bc30] # # patch "rev_output.cc" # from [eab7b6ea3b1d6f0fc4253fa7df296bb4e40330d7] # to [95e5dd5794fa8133c73498002169065ba86d6faa] # # patch "rev_output.hh" # from [04094228d1f6e4828d139f41be4ce6eb6b08b593] # to [666dd3ed35e16d8b122b4932c2aad05a21a22e25] # ============================================================ --- cmd_diff_log.cc a619acf2b7a88bff426553ac7f5aea679047ba35 +++ cmd_diff_log.cc 9e10a7a7d934de2d45d2675e95880e113ea32cb8 @@ -844,7 +844,7 @@ CMD(log, "log", "", CMD_REF(informative) else { utf8 header; - revision_header(rid, rev, certs, header); + revision_header(rid, rev, certs, date_fmt, header); external header_external; utf8_to_system_best_effort(header, header_external); ============================================================ --- cmd_ws_commit.cc ca903e187f3cf617bf5ab1abbab65f36fc8b2b8b +++ cmd_ws_commit.cc 388166b33195e7202dc63d0f762ab4b47d19bc30 @@ -93,7 +93,8 @@ get_log_message_interactively(lua_hooks utf8 header; utf8 summary; - revision_header(rid, rev, author, date, branch, changelog, header); + string date_fmt; + revision_header(rid, rev, author, date, branch, changelog, date_fmt, header); revision_summary(rev, summary); utf8 full_message(instructions() + header() + summary(), origin::internal); @@ -611,7 +612,8 @@ CMD(status, "status", "", CMD_REF(inform CMD(status, "status", "", CMD_REF(informative), N_("[PATH]..."), N_("Shows workspace's status information"), "", - options::opts::depth | options::opts::exclude) + options::opts::depth | options::opts::exclude | + options::opts::format_dates | options::opts::date_fmt) { roster_t new_roster; parent_map old_rosters; @@ -621,6 +623,16 @@ CMD(status, "status", "", CMD_REF(inform database db(app); project_t project(db); workspace work(app); + + string date_fmt; + if (app.opts.format_dates) + { + if (!app.opts.date_fmt.empty()) + date_fmt = app.opts.date_fmt; + else + app.lua.hook_get_date_format_spec(date_fmt); + } + work.get_parent_rosters(db, old_rosters); work.get_current_roster_shape(db, nis, new_roster); @@ -689,7 +701,8 @@ CMD(status, "status", "", CMD_REF(inform utf8 header; utf8 summary; - revision_header(rid, rev, author, date_t::now(), app.opts.branch, changelog, header); + revision_header(rid, rev, author, date_t::now(), app.opts.branch, changelog, + date_fmt, header); revision_summary(rev, summary); external header_external; ============================================================ --- rev_output.cc eab7b6ea3b1d6f0fc4253fa7df296bb4e40330d7 +++ rev_output.cc 95e5dd5794fa8133c73498002169065ba86d6faa @@ -31,7 +31,7 @@ revision_header(revision_id const rid, r revision_header(revision_id const rid, revision_t const & rev, string const & author, date_t const date, branch_name const & branch, utf8 const & changelog, - utf8 & header) + string const & date_fmt, utf8 & header) { vector certs; key_id empty_key; @@ -46,12 +46,13 @@ revision_header(revision_id const rid, r certs.push_back(cert(rid, changelog_cert_name, cert_value(changelog(), origin::user), empty_key)); - revision_header(rid, rev, certs, header); + revision_header(rid, rev, certs, date_fmt, header); } void revision_header(revision_id const rid, revision_t const & rev, - vector const & certs, utf8 & header) + vector const & certs, string const & date_fmt, + utf8 & header) { ostringstream out; @@ -78,7 +79,15 @@ revision_header(revision_id const rid, r for (vector::const_iterator i = certs.begin(); i != certs.end(); ++i) if (i->name == date) - out << _("Date: ") << i->value << '\n'; // FIXME: date formats + { + if (date_fmt.empty()) + out << _("Date: ") << i->value << '\n'; + else + { + date_t date(i->value()); + out << _("Date: ") << date.as_formatted_localtime(date_fmt) << '\n'; + } + } for (vector::const_iterator i = certs.begin(); i != certs.end(); ++i) if (i->name == branch) ============================================================ --- rev_output.hh 04094228d1f6e4828d139f41be4ce6eb6b08b593 +++ rev_output.hh 666dd3ed35e16d8b122b4932c2aad05a21a22e25 @@ -20,11 +20,12 @@ revision_header(revision_id const rid, r revision_header(revision_id const rid, revision_t const & rev, std::string const & author, date_t const date, branch_name const & branch, utf8 const & changelog, - utf8 & header); + std::string const & date_fmt, utf8 & header); void revision_header(revision_id const rid, revision_t const & rev, - std::vector const & certs, utf8 & header); + std::vector const & certs, std::string const & date_fmt, + utf8 & header); void revision_summary(revision_t const & rev, utf8 & summary);