# # # patch "annotate.cc" # from [873cb5eff33acad204f11e830e6f3450516f4a6d] # to [8ab0402a05361ecc7bc9484514d11fef6f7997e3] # # patch "automate.cc" # from [c931d99138ad12c95e5c0ef042fc7b77a1638ae9] # to [3107ad5560ae95219add8b20a390c3d86657886f] # # patch "cmd_diff_log.cc" # from [f7a6938e7fa401b5974613c38689579d88e27339] # to [af229d50cc17127fcfef8d03ba87c50306e6d27b] # # patch "cmd_files.cc" # from [b00c6b0c39ef5d52f8bdff6133c152e3106c5849] # to [0de622dfecb26c9e4dbaebffb846a797b1e00c38] # # patch "cmd_list.cc" # from [8c2ff0be56da69ae8931a75962bcf03e906e0036] # to [625bb9c30ba36817c5969c053096dac4642d8305] # # patch "cmd_merging.cc" # from [ae8d721cb451bdd51936ec0e2813e452a943d713] # to [63404ef7c5cf5a56fa77c5f934213f239c3e4dce] # # patch "cmd_ws_commit.cc" # from [93046b4de12408e9aea899d5d50ed374bcb72923] # to [bbfd63b3e1e3c4d59df1ec26450ee20203f24caa] # # patch "commands.cc" # from [f815513f8a69b69bcf44822070d793895cdf9888] # to [0cf90848baf2600e9f60d74d642af0202b8ae23b] # # patch "database.cc" # from [b9bfc2cef4e1561d13cfbf9b2f3b39eb42478b68] # to [c2748fab3d23cb3e0eb69e76fdd3529b38f28cfa] # # patch "diff_patch.cc" # from [63809cb7160631a1caf5b0391aa3c10ccc94a707] # to [e4040c90b8bbc6afa8f10f3ecdabbcf516421311] # # patch "enumerator.cc" # from [8960e4ce4727e76ef86498bb71e6ca68095dbc41] # to [9ae938cba018300929af6c9cfee304e5f10ff5f2] # # patch "project.cc" # from [9c881d67edc2e64055101bcf65a38ba01a590ebc] # to [e01f12f25458ab142b3473d1691393a5cbe767a7] # # patch "revision.cc" # from [f472f361a35ba50757e4f97a3492daf3e5665840] # to [d3b8f3b1001ba1b477ecb66f4e99b8d699f47313] # # patch "roster_merge.cc" # from [343c0bf5bbb143432954a86f0174a7a5bc76402e] # to [4e571728df3aed7038f7440aa0f5e1d8b363fcaa] # # patch "tests/add_in_subdir/__driver__.lua" # from [6707dd3554af3db376f9539e0b90a02071e47a63] # to [730c172970f2a479c2d74908beb197a510d1653f] # # patch "update.cc" # from [04ca1a313bbd21e3fb4654074b36a791246052af] # to [f9576513a45e2fcf500d93149ba1f035ef8eb16f] # # patch "vocab.cc" # from [bf076cdf0d7f4c1a09a37c722c3c5f1937307375] # to [e0e42e8bf39443a337bfb58c93d08c45c0143ead] # ============================================================ --- annotate.cc 873cb5eff33acad204f11e830e6f3450516f4a6d +++ annotate.cc 8ab0402a05361ecc7bc9484514d11fef6f7997e3 @@ -402,7 +402,7 @@ annotate_context::build_revisions_to_ann true, false, "T")); string result; - result.append((*i).inner ()().substr(0, 8)); + result.append(encode_hexenc(i->inner()()).substr(0, 8)); result.append(".. by "); result.append(author); result.append(" "); @@ -454,7 +454,7 @@ annotate_context::dump(bool just_revs) c lastid = annotations[i]; } else - cout << annotations[i] << ": " + cout << encode_hexenc(annotations[i].inner()()) << ": " << file_lines[i] << '\n'; } } @@ -699,7 +699,8 @@ do_annotate_node(database & db, annotate_node_work const & work_unit, work_units & work_units) { - L(FL("do_annotate_node for node %s") % work_unit.revision); + L(FL("do_annotate_node for node %s") + % encode_hexenc(work_unit.revision.inner()())); size_t added_in_parent_count = 0; @@ -711,7 +712,8 @@ do_annotate_node(database & db, revision_id parent_revision = *i; L(FL("do_annotate_node processing edge from parent %s to child %s") - % parent_revision % work_unit.revision); + % encode_hexenc(parent_revision.inner()()) + % encode_hexenc(work_unit.revision.inner()())); I(!(work_unit.revision == parent_revision)); @@ -736,7 +738,8 @@ do_annotate_node(database & db, // stop if file is not present in the parent. if (null_id(file_in_parent)) { - L(FL("file added in %s, continuing") % work_unit.revision); + L(FL("file added in %s, continuing") + % encode_hexenc(work_unit.revision.inner()())); added_in_parent_count++; continue; } @@ -756,7 +759,7 @@ do_annotate_node(database & db, file_data data; db.get_file_version(file_in_parent, data); L(FL("building parent lineage for parent file %s") - % file_in_parent); + % encode_hexenc(file_in_parent.inner()())); parent_lineage = work_unit.lineage->build_parent_lineage(work_unit.annotations, parent_revision, @@ -801,7 +804,8 @@ do_annotate_node(database & db, { // already a pending node, so we just have to merge the lineage. L(FL("merging lineage from node %s to parent %s") - % work_unit.revision % parent_revision); + % encode_hexenc(work_unit.revision.inner()()) + % encode_hexenc(parent_revision.inner()())); lmn->lineage->merge(*parent_lineage, work_unit.annotations); } @@ -820,7 +824,9 @@ do_annotate (project_t & project, file_t revision_id rid, bool just_revs) { L(FL("annotating file %s with content %s in revision %s") - % file_node->self % file_node->content % rid); + % file_node->self + % encode_hexenc(file_node->content.inner()()) + % encode_hexenc(rid.inner()())); shared_ptr acp(new annotate_context(project, file_node->content)); ============================================================ --- automate.cc c931d99138ad12c95e5c0ef042fc7b77a1638ae9 +++ automate.cc 3107ad5560ae95219add8b20a390c3d86657886f @@ -491,7 +491,7 @@ CMD_AUTOMATE(graph, "", i = child_to_parents.begin(); i != child_to_parents.end(); ++i) { - output << (i->first).inner()(); + output << encode_hexenc((i->first).inner()()); for (set::const_iterator j = i->second.begin(); j != i->second.end(); ++j) output << ' ' << encode_hexenc(j->inner()()); @@ -1207,14 +1207,13 @@ CMD_AUTOMATE(get_revision, N_("REVID"), database db(app); revision_data dat; - revision_id ident; + hexenc hrid(idx(args, 0)()); + revision_id rid(decode_hexenc(hrid())); + N(db.revision_exists(rid), + F("no revision %s found in database") % hrid); + db.get_revision(rid, dat); - ident = revision_id(idx(args, 0)()); - N(db.revision_exists(ident), - F("no revision %s found in database") % ident); - db.get_revision(ident, dat); - - L(FL("dumping revision %s") % ident); + L(FL("dumping revision %s") % hrid); output.write(dat.inner()().data(), dat.inner()().size()); } @@ -2116,9 +2115,10 @@ CMD_AUTOMATE(cert, N_("REVISION-ID NAME database db(app); key_store keys(app); - revision_id rid(decode_hexenc(idx(args, 0)())); + hexenc hrid(idx(args, 0)()); + revision_id rid(decode_hexenc(hrid())); N(db.revision_exists(rid), - F("no such revision '%s'") % idx(args, 0)()); + F("no such revision '%s'") % hrid); cache_user_key(app.opts, app.lua, db, keys); put_simple_revision_cert(db, keys, rid, cert_name(idx(args, 1)()), ============================================================ --- cmd_diff_log.cc f7a6938e7fa401b5974613c38689579d88e27339 +++ cmd_diff_log.cc af229d50cc17127fcfef8d03ba87c50306e6d27b @@ -889,7 +889,7 @@ CMD(log, "log", "", CMD_REF(informative) else { out << string(65, '-') << '\n'; - out << "Revision: " << rid << '\n'; + out << "Revision: " << encode_hexenc(rid.inner()()) << '\n'; changes_summary csum; @@ -904,7 +904,8 @@ CMD(log, "log", "", CMD_REF(informative) for (set::const_iterator anc = ancestors.begin(); anc != ancestors.end(); ++anc) - out << "Ancestor: " << *anc << '\n'; + out << "Ancestor: " + << encode_hexenc(anc->inner()()) << '\n'; log_certs(project, out, rid, author_name, "Author: ", false); log_certs(project, out, rid, date_name, "Date: ", false); @@ -944,7 +945,8 @@ CMD(log, "log", "", CMD_REF(informative) graph.print(rid, interesting, out_system); } else if (use_markings && !app.opts.no_graph) - graph.print(rid, interesting, (F("(Revision: %s)") % rid).str()); + graph.print(rid, interesting, ( + F("(Revision: %s)") % encode_hexenc(rid.inner()())).str()); frontier.pop(); // beware: rid is invalid from now on ============================================================ --- cmd_files.cc b00c6b0c39ef5d52f8bdff6133c152e3106c5849 +++ cmd_files.cc 0de622dfecb26c9e4dbaebffb846a797b1e00c38 @@ -250,10 +250,11 @@ dump_file(database & db, std::ostream & dump_file(database & db, std::ostream & output, file_id & ident) { N(db.file_version_exists(ident), - F("no file version %s found in database") % ident); + F("no file version %s found in database") + % encode_hexenc(ident.inner()())); file_data dat; - L(FL("dumping file %s") % ident); + L(FL("dumping file %s") % encode_hexenc(ident.inner()())); db.get_file_version(ident, dat); output.write(dat.inner()().data(), dat.inner()().size()); } @@ -262,7 +263,8 @@ dump_file(database & db, std::ostream & dump_file(database & db, std::ostream & output, revision_id rid, utf8 filename) { N(db.revision_exists(rid), - F("no such revision '%s'") % rid); + F("no such revision '%s'") + % encode_hexenc(rid.inner()())); // Paths are interpreted as standard external ones when we're in a // workspace, but as project-rooted external ones otherwise. @@ -272,11 +274,13 @@ dump_file(database & db, std::ostream & marking_map marks; db.get_roster(rid, roster, marks); N(roster.has_node(fp), - F("no file '%s' found in revision '%s'") % fp % rid); + F("no file '%s' found in revision '%s'") + % fp % encode_hexenc(rid.inner()())); node_t node = roster.get_node(fp); N((!null_node(node->self) && is_file_t(node)), - F("no file '%s' found in revision '%s'") % fp % rid); + F("no file '%s' found in revision '%s'") + % fp % encode_hexenc(rid.inner()())); file_t file_node = downcast_to_file_t(node); dump_file(db, output, file_node->content); @@ -331,7 +335,8 @@ CMD_AUTOMATE(get_file, N_("FILEID"), F("wrong argument count")); database db(app); - file_id ident(idx(args, 0)()); + hexenc hident(idx(args, 0)()); + file_id ident(decode_hexenc(hident())); dump_file(db, output, ident); } ============================================================ --- cmd_list.cc 8c2ff0be56da69ae8931a75962bcf03e906e0036 +++ cmd_list.cc 625bb9c30ba36817c5969c053096dac4642d8305 @@ -685,10 +685,10 @@ CMD_AUTOMATE(certs, N_("REV"), transaction_guard guard(db, false); - hexenc ident(idx(args, 0)()); - revision_id rid(decode_hexenc(ident())); + hexenc hrid(idx(args, 0)()); + revision_id rid(decode_hexenc(hrid())); - N(db.revision_exists(rid), F("no such revision '%s'") % rid); + N(db.revision_exists(rid), F("no such revision '%s'") % hrid); vector< revision > ts; // FIXME_PROJECTS: after projects are implemented, @@ -728,7 +728,7 @@ CMD_AUTOMATE(certs, N_("REV"), signers.insert(keyid); bool trusted = - app.lua.hook_get_revision_cert_trust(signers, ident, + app.lua.hook_get_revision_cert_trust(signers, rid, name, tv); st.push_str_pair(syms::key, keyid()); ============================================================ --- cmd_merging.cc ae8d721cb451bdd51936ec0e2813e452a943d713 +++ cmd_merging.cc 63404ef7c5cf5a56fa77c5f934213f239c3e4dce @@ -77,8 +77,8 @@ three_way_merge(revision_id const & ance safe_insert(left_uncommon_ancestors, left_rid); safe_insert(right_uncommon_ancestors, right_rid); - P(F("[left] %s") % left_rid); - P(F("[right] %s") % right_rid); + P(F("[left] %s") % encode_hexenc(left_rid.inner()())); + P(F("[right] %s") % encode_hexenc(right_rid.inner()())); // And do the merge roster_merge(left_roster, left_markings, left_uncommon_ancestors, @@ -207,7 +207,8 @@ CMD(update, "update", "", CMD_REF(worksp if (old_rid == chosen_rid) { - P(F("already up to date at %s") % old_rid); + P(F("already up to date at %s") + % encode_hexenc(old_rid.inner()())); // do still switch the workspace branch, in case they have used // update to switch branches. work.set_ws_options(app.opts, true); @@ -567,14 +568,14 @@ CMD(merge_into_dir, "merge_into_dir", "" cache_user_key(app.opts, app.lua, db, keys); P(F("propagating %s -> %s") % idx(args,0) % idx(args,1)); - P(F("[left] %s") % *src_i); - P(F("[right] %s") % *dst_i); + P(F("[left] %s") % encode_hexenc(src_i->inner()())); + P(F("[right] %s") % encode_hexenc(dst_i->inner()())); // check for special cases if (is_ancestor(db, *dst_i, *src_i)) { P(F("no merge necessary; putting %s in branch '%s'") - % (*src_i) % idx(args, 1)()); + % encode_hexenc(src_i->inner()()) % idx(args, 1)()); transaction_guard guard(db); project.put_revision_in_branch(keys, *src_i, branch_name(idx(args, 1)())); @@ -654,8 +655,10 @@ CMD(merge_into_dir, "merge_into_dir", "" if (!log_message_given) log_message = utf8((FL("propagate from branch '%s' (head %s)\n" " to branch '%s' (head %s)\n") - % idx(args, 0) % (*src_i) - % idx(args, 1) % (*dst_i)).str()); + % idx(args, 0) + % encode_hexenc(src_i->inner()()) + % idx(args, 1) + % encode_hexenc(dst_i->inner()())).str()); project.put_standard_certs_from_options(app.opts, app.lua, keys, @@ -664,7 +667,8 @@ CMD(merge_into_dir, "merge_into_dir", "" log_message); guard.commit(); - P(F("[merged] %s") % merged); + P(F("[merged] %s") + % encode_hexenc(merged.inner()())); } } @@ -719,10 +723,11 @@ CMD(merge_into_workspace, "merge_into_wo complete(app.opts, app.lua, project, idx(args, 0)(), right_id); db.get_roster(right_id, right); - N(!(left_id == right_id), F("workspace is already at revision %s") % left_id); + N(!(left_id == right_id), F("workspace is already at revision %s") + % encode_hexenc(left_id.inner()())); - P(F("[left] %s") % left_id); - P(F("[right] %s") % right_id); + P(F("[left] %s") % encode_hexenc(left_id.inner()())); + P(F("[right] %s") % encode_hexenc(right_id.inner()())); set left_uncommon_ancestors, right_uncommon_ancestors; db.get_uncommon_ancestors(left_id, right_id, @@ -773,7 +778,9 @@ CMD(merge_into_workspace, "merge_into_wo P(F("updated to result of merge\n" " [left] %s\n" - "[right] %s\n") % left_id % right_id); + "[right] %s\n") + % encode_hexenc(left_id.inner()()) + % encode_hexenc(right_id.inner()())); } CMD(explicit_merge, "explicit_merge", "", CMD_REF(tree), @@ -797,11 +804,17 @@ CMD(explicit_merge, "explicit_merge", "" branch = branch_name(idx(args, 2)()); N(!(left == right), - F("%s and %s are the same revision, aborting") % left % right); + F("%s and %s are the same revision, aborting") + % encode_hexenc(left.inner()()) + % encode_hexenc(right.inner()())); N(!is_ancestor(db, left, right), - F("%s is already an ancestor of %s") % left % right); + F("%s is already an ancestor of %s") + % encode_hexenc(left.inner()()) + % encode_hexenc(right.inner()())); N(!is_ancestor(db, right, left), - F("%s is already an ancestor of %s") % right % left); + F("%s is already an ancestor of %s") + % encode_hexenc(right.inner()()) + % encode_hexenc(left.inner()())); // avoid failure after lots of work cache_user_key(app.opts, app.lua, db, keys); @@ -825,9 +838,13 @@ CMD(show_conflicts, "show_conflicts", "" complete(app.opts, app.lua, project, idx(args,0)(), l_id); complete(app.opts, app.lua, project, idx(args,1)(), r_id); N(!is_ancestor(db, l_id, r_id), - F("%s is an ancestor of %s; no merge is needed.") % l_id % r_id); + F("%s is an ancestor of %s; no merge is needed.") + % encode_hexenc(l_id.inner()()) + % encode_hexenc(r_id.inner()())); N(!is_ancestor(db, r_id, l_id), - F("%s is an ancestor of %s; no merge is needed.") % r_id % l_id); + F("%s is an ancestor of %s; no merge is needed.") + % encode_hexenc(r_id.inner()()) + % encode_hexenc(l_id.inner()())); roster_t l_roster, r_roster; marking_map l_marking, r_marking; db.get_roster(l_id, l_roster, l_marking); @@ -846,8 +863,8 @@ CMD(show_conflicts, "show_conflicts", "" // so they may appear swapped here. perhaps we should sort left and right // before using them? - P(F("[left] %s") % l_id); - P(F("[right] %s") % r_id); + P(F("[left] %s") % encode_hexenc(l_id.inner()())); + P(F("[right] %s") % encode_hexenc(r_id.inner()())); if (result.is_clean()) { @@ -899,8 +916,9 @@ CMD(pluck, "pluck", "", CMD_REF(workspac F("revision %s is a merge\n" "to apply the changes relative to one of its parents, use:\n" " %s pluck -r PARENT -r %s") - % to_rid - % ui.prog_name % to_rid); + % encode_hexenc(to_rid.inner()()) + % ui.prog_name + % encode_hexenc(to_rid.inner()())); from_rid = *parents.begin(); } else if (app.opts.revision_selectors.size() == 2) @@ -1046,11 +1064,13 @@ CMD(pluck, "pluck", "", CMD_REF(workspac if (from_to_to_excluded.empty()) log_str += (FL("applied changes from %s\n" " through %s\n") - % from_rid % to_rid).str(); + % encode_hexenc(from_rid.inner()()) + % encode_hexenc(to_rid.inner()())).str(); else log_str += (FL("applied partial changes from %s\n" " through %s\n") - % from_rid % to_rid).str(); + % encode_hexenc(from_rid.inner()()) + % encode_hexenc(to_rid.inner()())).str(); work.write_user_log(utf8(log_str)); } } ============================================================ --- cmd_ws_commit.cc 93046b4de12408e9aea899d5d50ed374bcb72923 +++ cmd_ws_commit.cc bbfd63b3e1e3c4d59df1ec26450ee20203f24caa @@ -295,15 +295,17 @@ CMD(revert, "revert", "", CMD_REF(worksp } P(F("reverting %s") % new_path); - L(FL("reverting %s to [%s]") % new_path % f->content); + L(FL("reverting %s to [%s]") % new_path + % encode_hexenc(f->content.inner()())); N(db.file_version_exists(f->content), F("no file version %s found in database for %s") - % f->content % new_path); + % encode_hexenc(f->content.inner()()) + % new_path); file_data dat; L(FL("writing file %s to %s") - % f->content % new_path); + % encode_hexenc(f->content.inner()()) % new_path); db.get_file_version(f->content, dat); write_data(new_path, dat.inner()); } @@ -359,13 +361,15 @@ CMD(disapprove, "disapprove", "", CMD_RE db.get_revision(r, rev); N(rev.edges.size() == 1, - F("revision %s has %d changesets, cannot invert") % r % rev.edges.size()); + F("revision %s has %d changesets, cannot invert") + % encode_hexenc(r.inner()()) % rev.edges.size()); guess_branch(app.opts, project, r); N(app.opts.branchname() != "", F("need --branch argument for disapproval")); process_commit_message_args(app.opts, log_message_given, log_message, - utf8((FL("disapproval of revision '%s'") % r).str())); + utf8((FL("disapproval of revision '%s'") + % encode_hexenc(r.inner()())).str())); cache_user_key(app.opts, app.lua, db, keys); @@ -643,7 +647,7 @@ CMD(checkout, "checkout", "co", CMD_REF( N(project.revision_is_in_branch(revid, app.opts.branchname), F("revision %s is not a member of branch %s") - % revid % app.opts.branchname); + % encode_hexenc(revid.inner()()) % app.opts.branchname); } // we do this part of the checking down here, because it is legitimate to @@ -680,7 +684,8 @@ CMD(checkout, "checkout", "co", CMD_REF( roster_t empty_roster, current_roster; - L(FL("checking out revision %s to directory %s") % revid % dir); + L(FL("checking out revision %s to directory %s") + % encode_hexenc(revid.inner()()) % dir); db.get_roster(revid, current_roster); revision_t workrev; ============================================================ --- commands.cc f815513f8a69b69bcf44822070d793895cdf9888 +++ commands.cc 0cf90848baf2600e9f60d74d642af0202b8ae23b @@ -865,7 +865,7 @@ describe_revision(project_t & project, r string description; - description += id.inner()(); + description += encode_hexenc(id.inner()()); // append authors and date of this revision vector< revision > tmp; ============================================================ --- database.cc b9bfc2cef4e1561d13cfbf9b2f3b39eb42478b68 +++ database.cc c2748fab3d23cb3e0eb69e76fdd3529b38f28cfa @@ -1981,7 +1981,8 @@ database::put_file(file_id const & id, file_data const & dat) { if (file_version_exists(id)) - L(FL("file version '%s' already exists in db") % id); + L(FL("file version '%s' already exists in db") + % encode_hexenc(id.inner()())); else imp->schedule_delayed_file(id, dat); } @@ -1997,8 +1998,11 @@ database::put_file_version(file_id const if (!file_version_exists(old_id)) { - W(F("file preimage '%s' missing in db") % old_id); - W(F("dropping delta '%s' -> '%s'") % old_id % new_id); + W(F("file preimage '%s' missing in db") + % encode_hexenc(old_id.inner()())); + W(F("dropping delta '%s' -> '%s'") + % encode_hexenc(old_id.inner()()) + % encode_hexenc(new_id.inner()())); return; } @@ -2052,7 +2056,7 @@ database::get_arbitrary_file_delta(file_ query q1("SELECT delta FROM file_deltas " "WHERE base = ? AND id = ?"); imp->fetch(res, one_col, any_rows, - q1 % text(src_id.inner()()) % text(dst_id.inner()())); + q1 % blob(src_id.inner()()) % blob(dst_id.inner()())); if (!res.empty()) { @@ -2066,7 +2070,7 @@ database::get_arbitrary_file_delta(file_ query q2("SELECT delta FROM file_deltas " "WHERE base = ? AND id = ?"); imp->fetch(res, one_col, any_rows, - q2 % text(dst_id.inner()()) % text(src_id.inner()())); + q2 % blob(dst_id.inner()()) % blob(src_id.inner()())); if (!res.empty()) { ============================================================ --- diff_patch.cc 63809cb7160631a1caf5b0391aa3c10ccc94a707 +++ diff_patch.cc e4040c90b8bbc6afa8f10f3ecdabbcf516421311 @@ -512,7 +512,9 @@ content_merge_database_adaptor::record_m file_data const & merged_data) { L(FL("recording successful merge of %s <-> %s into %s") - % left_ident % right_ident % merged_ident); + % encode_hexenc(left_ident.inner()()) + % encode_hexenc(right_ident.inner()()) + % encode_hexenc(merged_ident.inner()())); transaction_guard guard(db); @@ -621,7 +623,9 @@ content_merge_workspace_adaptor::record_ file_data const & merged_data) { L(FL("temporarily recording merge of %s <-> %s into %s") - % left_id % right_id % merged_id); + % encode_hexenc(left_id.inner()()) + % encode_hexenc(right_id.inner()()) + % encode_hexenc(merged_id.inner()())); // this is an insert instead of a safe_insert because it is perfectly // legal (though rare) to have multiple merges resolve to the same file // contents. @@ -691,7 +695,9 @@ content_merge_workspace_adaptor::get_ver calculate_ident(file_data(tmp), fid); E(fid == ident, F("file %s in workspace has id %s, wanted %s") - % i->second % fid % ident); + % i->second + % encode_hexenc(fid.inner()()) + % encode_hexenc(ident.inner()())); dat = file_data(tmp); } } @@ -770,7 +776,10 @@ content_merger::try_auto_merge(file_path I(!null_id(right_id)); L(FL("trying auto merge '%s' %s <-> %s (ancestor: %s)") - % merged_path % left_id % right_id % ancestor_id); + % merged_path + % encode_hexenc(left_id.inner()()) + % encode_hexenc(right_id.inner()()) + % encode_hexenc(ancestor_id.inner()())); if (left_id == right_id) { @@ -845,7 +854,10 @@ content_merger::try_user_merge(file_path I(!null_id(right_id)); L(FL("trying user merge '%s' %s <-> %s (ancestor: %s)") - % merged_path % left_id % right_id % ancestor_id); + % merged_path + % encode_hexenc(left_id.inner()()) + % encode_hexenc(right_id.inner()()) + % encode_hexenc(ancestor_id.inner()())); if (left_id == right_id) { @@ -1430,8 +1442,10 @@ make_diff(string const & filename1, { case unified_diff: { - ost << "--- " << filename1 << '\t' << id1 << '\n'; - ost << "+++ " << filename2 << '\t' << id2 << '\n'; + ost << "--- " << filename1 << '\t' + << encode_hexenc(id1.inner()()) << '\n'; + ost << "+++ " << filename2 << '\t' + << encode_hexenc(id2.inner()()) << '\n'; unidiff_hunk_writer hunks(lines1, lines2, 3, ost, pattern); walk_hunk_consumer(lcs, left_interned, right_interned, hunks); @@ -1439,8 +1453,10 @@ make_diff(string const & filename1, } case context_diff: { - ost << "*** " << filename1 << '\t' << id1 << '\n'; - ost << "--- " << filename2 << '\t' << id2 << '\n'; + ost << "*** " << filename1 << '\t' + << encode_hexenc(id1.inner()()) << '\n'; + ost << "--- " << filename2 << '\t' + << encode_hexenc(id2.inner()()) << '\n'; cxtdiff_hunk_writer hunks(lines1, lines2, 3, ost, pattern); walk_hunk_consumer(lcs, left_interned, right_interned, hunks); ============================================================ --- enumerator.cc 8960e4ce4727e76ef86498bb71e6ca68095dbc41 +++ enumerator.cc 9ae938cba018300929af6c9cfee304e5f10ff5f2 @@ -19,6 +19,7 @@ #include "vocab.hh" #include "database.hh" #include "project.hh" +#include "transforms.hh" using std::make_pair; using std::map; @@ -233,7 +234,8 @@ revision_enumerator::step() if (cb.process_this_rev(r)) { L(FL("revision_enumerator::step expanding " - "contents of rev '%d'\n") % r); + "contents of rev '%d'\n") + % encode_hexenc(r.inner()())); // The rev's files and fdeltas { ============================================================ --- project.cc 9c881d67edc2e64055101bcf65a38ba01a590ebc +++ project.cc e01f12f25458ab142b3473d1691393a5cbe767a7 @@ -174,7 +174,7 @@ project_t::revision_is_in_branch(revisio % num % certs.size() % branch - % id); + % encode_hexenc(id.inner()())); return !certs.empty(); } @@ -202,7 +202,7 @@ project_t::revision_is_suspended_in_bran % num % certs.size() % branch - % id); + % encode_hexenc(id.inner()())); return !certs.empty(); } ============================================================ --- revision.cc f472f361a35ba50757e4f97a3492daf3e5665840 +++ revision.cc d3b8f3b1001ba1b477ecb66f4e99b8d699f47313 @@ -303,7 +303,9 @@ is_ancestor(database & db, revision_id const & ancestor_id, revision_id const & descendent_id) { - L(FL("checking whether %s is an ancestor of %s") % ancestor_id % descendent_id); + L(FL("checking whether %s is an ancestor of %s") + % encode_hexenc(ancestor_id.inner()()) + % encode_hexenc(descendent_id.inner()())); multimap graph; db.get_revision_ancestry(graph); ============================================================ --- roster_merge.cc 343c0bf5bbb143432954a86f0174a7a5bc76402e +++ roster_merge.cc 4e571728df3aed7038f7440aa0f5e1d8b363fcaa @@ -16,6 +16,7 @@ #include "roster_merge.hh" #include "parallel_iter.hh" #include "safe_map.hh" +#include "transforms.hh" using boost::shared_ptr; @@ -94,8 +95,8 @@ dump(file_content_conflict const & confl { ostringstream oss; oss << "file_content_conflict on node: " << conflict.nid << " " - << "left: " << conflict.left << " " - << "right: " << conflict.right << "\n"; + << "left: " << encode_hexenc(conflict.left.inner()()) << " " + << "right: " << encode_hexenc(conflict.right.inner()()) << "\n"; out = oss.str(); } @@ -489,10 +490,10 @@ roster_merge_result::report_multiple_nam if (type == file_type) P(F("conflict: multiple names for file '%s' from revision %s") - % lca_name % lca_rid); + % lca_name % encode_hexenc(lca_rid.inner()())); else P(F("conflict: multiple names for directory '%s' from revision %s") - % lca_name % lca_rid); + % lca_name % encode_hexenc(lca_rid.inner()())); P(F("renamed to '%s' on the left") % left_name); P(F("renamed to '%s' on the right") % right_name); @@ -727,8 +728,10 @@ roster_merge_result::report_file_content P(F("conflict: content conflict on file '%s'") % name); - P(F("content hash is %s on the left") % conflict.left); - P(F("content hash is %s on the right") % conflict.right); + P(F("content hash is %s on the left") + % encode_hexenc(conflict.left.inner()())); + P(F("content hash is %s on the right") + % encode_hexenc(conflict.right.inner()())); } else { @@ -748,11 +751,11 @@ roster_merge_result::report_file_content lca_roster->get_name(conflict.nid, lca_name); P(F("conflict: content conflict on file '%s' from revision %s") - % lca_name % lca_rid); + % lca_name % encode_hexenc(lca_rid.inner()())); P(F("content hash is %s on the left in file '%s'") - % conflict.left % left_name); + % encode_hexenc(conflict.left.inner()()) % left_name); P(F("content hash is %s on the right in file '%s'") - % conflict.right % right_name); + % encode_hexenc(conflict.right.inner()()) % right_name); } } } @@ -882,7 +885,7 @@ namespace "removed on one side of the merge. Affected revisions include:") % fp); } found_one_ignored_content = true; - W(F("Revision: %s") % *it); + W(F("Revision: %s") % encode_hexenc(it->inner()())); } } } ============================================================ --- tests/add_in_subdir/__driver__.lua 6707dd3554af3db376f9539e0b90a02071e47a63 +++ tests/add_in_subdir/__driver__.lua 730c172970f2a479c2d74908beb197a510d1653f @@ -8,7 +8,7 @@ chdir("subdir") -- Add a file chdir("subdir") -check(mtn("add", "foo"), 0, false, false) +check(mtn("--debug", "add", "foo"), 0, false, false) -- Add a directory check(mtn("add", "-R", "anotherdir"), 0, false, false) chdir("..") ============================================================ --- update.cc 04ca1a313bbd21e3fb4654074b36a791246052af +++ update.cc f9576513a45e2fcf500d93149ba1f035ef8eb16f @@ -84,12 +84,14 @@ acceptable_descendent(lua_hooks & lua, map & base_results, revision_id const & target) { - L(FL("Considering update target %s") % target); + L(FL("Considering update target %s") + % encode_hexenc(target.inner()())); // step 1: check the branch if (!project.revision_is_in_branch(target, branch)) { - L(FL("%s not in branch %s") % target % branch); + L(FL("%s not in branch %s") + % encode_hexenc(target.inner()()) % branch); return false; } @@ -98,12 +100,14 @@ acceptable_descendent(lua_hooks & lua, get_test_results_for_revision(project, target, target_results); if (lua.hook_accept_testresult_change(base_results, target_results)) { - L(FL("%s is acceptable update candidate") % target); + L(FL("%s is acceptable update candidate") + % encode_hexenc(target.inner()())); return true; } else { - L(FL("%s has unacceptable test results") % target); + L(FL("%s has unacceptable test results") + % encode_hexenc(target.inner()())); return false; } } ============================================================ --- vocab.cc bf076cdf0d7f4c1a09a37c722c3c5f1937307375 +++ vocab.cc e0e42e8bf39443a337bfb58c93d08c45c0143ead @@ -81,10 +81,10 @@ verify(id & val) if (val().empty()) return; - N(val().size() == constants::sha1_digest_length, - F("binary ID '%s' size != %d") - % encode_hexenc(val()) - % constants::sha1_digest_length); + N((val().size() == constants::sha1_digest_length) || + (val().size() == constants::idlen), + F("invalid ID '%s'") + % encode_hexenc(val())); val.ok = true; }