# # # patch "automate.cc" # from [a9447622333c5593bfb53b013bc4f3b2ed19774e] # to [7034d044111943387eb32f7ad6ad06ac9bc630d6] # # patch "cmd_ws_commit.cc" # from [bff89d89e0f611d5a950c0a12c2f8054c8cb8a77] # to [b10002d34577ef04e2befc0791b030710ef51813] # ============================================================ --- automate.cc a9447622333c5593bfb53b013bc4f3b2ed19774e +++ automate.cc 7034d044111943387eb32f7ad6ad06ac9bc630d6 @@ -1553,15 +1553,17 @@ CMD_AUTOMATE(common_ancestors, N_("REV1 N(args.size() > 0, F("wrong argument count")); + database db(app); + set revs, common_ancestors; for (args_vector::const_iterator i = args.begin(); i != args.end(); ++i) { revision_id rid((*i)()); - N(app.db.revision_exists(rid), F("No such revision %s") % rid); + N(db.revision_exists(rid), F("No such revision %s") % rid); revs.insert(rid); } - app.db.get_common_ancestors(revs, common_ancestors); + db.get_common_ancestors(revs, common_ancestors); for (set::const_iterator i = common_ancestors.begin(); i != common_ancestors.end(); ++i) ============================================================ --- cmd_ws_commit.cc bff89d89e0f611d5a950c0a12c2f8054c8cb8a77 +++ cmd_ws_commit.cc b10002d34577ef04e2befc0791b030710ef51813 @@ -1079,7 +1079,9 @@ CMD(branch, "branch", "", CMD_REF(worksp if (args.size() > 1) throw usage(execid); - app.require_workspace(); + database db(app); + workspace work(app); + project_t project(db); if (args.size() == 0) { @@ -1093,7 +1095,7 @@ CMD(branch, "branch", "", CMD_REF(worksp F("branch of the current workspace is already set to %s") % branch); std::set branches; - app.get_project().get_branch_list(branches); + project.get_branch_list(branches); bool existing_branch = false; for (set::const_iterator i = branches.begin(); @@ -1107,7 +1109,7 @@ CMD(branch, "branch", "", CMD_REF(worksp } parent_map parents; - app.work.get_parent_rosters(parents); + work.get_parent_rosters(db, parents); set parent_revisions; for (parent_map::iterator i = parents.begin(); @@ -1123,13 +1125,14 @@ CMD(branch, "branch", "", CMD_REF(worksp if (existing_branch && parent_revisions.size() > 0) { set branch_heads, revs, common_ancestors; - app.get_project().get_branch_heads(branch, branch_heads); + project.get_branch_heads(branch, branch_heads, + app.opts.ignore_suspend_certs); set_union(parent_revisions.begin(), parent_revisions.end(), branch_heads.begin(), branch_heads.end(), inserter(revs, revs.begin())); - app.db.get_common_ancestors(revs, common_ancestors); + db.get_common_ancestors(revs, common_ancestors); if (common_ancestors.size() == 0) { @@ -1139,11 +1142,10 @@ CMD(branch, "branch", "", CMD_REF(worksp } } - // leave the other parameters empty so they won't get changed - system_path path; - rsa_keypair_id key; + app.opts.branchname = branch; - app.work.set_ws_options(path, branch, key, path); + // the workspace should remember the branch we just committed to. + work.set_ws_options(app.opts, true); if (existing_branch) P(F("next commit will use the existing branch %s") % branch); @@ -1224,8 +1226,6 @@ CMD(commit, "commit", "ci", CMD_REF(work } app.opts.branchname = branchname; - // write out the new branch name - app.make_branch_sticky(); } P(F("beginning commit on branch '%s'") % app.opts.branchname);