# # # patch "automate.cc" # from [b8ee9e9e4596dabda0b12ba523f76366d32318cc] # to [69331e82d1dcefcd00f0f6e9675f80da97e4aee8] # # patch "commands.cc" # from [34b4087e4cfcb4c961f6294e24e6017aa009a62f] # to [d93ef956100e6b8c8cd939e7a8b1ab2a6805292b] # # patch "restrictions.cc" # from [584281ed978331320b93c89b7b1d26958dcb957e] # to [c5363980c5d8986822b60bee1a7165d88f6a8a40] # # patch "restrictions.hh" # from [68df5137976d04348d5a0a7a965254cb2664b32c] # to [bbce72d5483ff1f554f69fb41f6d3a6157d6037e] # # patch "tests/t_automate_get_manifest_of.at" # from [861f8c3fbaf0cfdaed8a22f195d3f96ded76ebec] # to [380a79025d1f26259acf7b6a11a35a636c5f1dee] # ============================================================ --- automate.cc b8ee9e9e4596dabda0b12ba523f76366d32318cc +++ automate.cc 69331e82d1dcefcd00f0f6e9675f80da97e4aee8 @@ -991,9 +991,12 @@ if (args.size() == 0) { - revision_set rs; - app.require_working_copy(); - get_unrestricted_working_revision_and_rosters(app, rs, old_roster, new_roster); + temp_node_id_source nis; + revision_id old_revision_id; + + app.require_working_copy(); + get_base_and_current_roster_shape(old_roster, new_roster, nis, app); + update_current_roster_from_filesystem(new_roster, app); } else { ============================================================ --- commands.cc 34b4087e4cfcb4c961f6294e24e6017aa009a62f +++ commands.cc d93ef956100e6b8c8cd939e7a8b1ab2a6805292b @@ -340,13 +340,12 @@ if (!in_inodeprints_mode()) return; inodeprint_map ipm_new; - revision_set rev; roster_t old_roster, new_roster; - - get_unrestricted_working_revision_and_rosters(app, rev, - old_roster, - new_roster); - + temp_node_id_source nis; + + get_base_and_current_roster_shape(old_roster, new_roster, nis, app); + update_current_roster_from_filesystem(new_roster, app); + node_map const & new_nodes = new_roster.all_nodes(); for (node_map::const_iterator i = new_nodes.begin(); i != new_nodes.end(); ++i) { @@ -2861,11 +2860,12 @@ "base the update on the head of the branch (given or implicit)."), OPT_BRANCH_NAME % OPT_REVISION) { - revision_set r_old, r_working, r_new; + revision_set r_working; roster_t working_roster, chosen_roster; boost::shared_ptr old_roster = boost::shared_ptr(new roster_t()); marking_map working_mm, chosen_mm, merged_mm; revision_id r_old_id, r_working_id, r_chosen_id; + temp_node_id_source nis; if (args.size() > 0) throw usage(name); @@ -2880,9 +2880,12 @@ // such. But it should work for now; revisit if performance is // intolerable. - get_unrestricted_working_revision_and_rosters(app, r_working, - *old_roster, - working_roster); + get_base_and_current_roster_shape(*old_roster, working_roster, nis, app); + update_current_roster_from_filesystem(working_roster, app); + + get_revision_id(r_old_id); + make_revision_set(r_old_id, *old_roster, working_roster, r_working); + calculate_ident(r_working, r_working_id); I(r_working.edges.size() == 1); r_old_id = edge_old_revision(r_working.edges.begin()); @@ -2980,7 +2983,7 @@ chosen_uncommon_ancestors); // Note that under the definition of mark-merge, the working copy is an - // "uncommon ancestor" if itself too, even though it was not present in + // "uncommon ancestor" of itself too, even though it was not present in // the database (hence not returned by the query above). working_uncommon_ancestors.insert(r_working_id); ============================================================ --- restrictions.cc 584281ed978331320b93c89b7b1d26958dcb957e +++ restrictions.cc c5363980c5d8986822b60bee1a7165d88f6a8a40 @@ -397,18 +397,3 @@ get_working_revision_and_rosters(app, args, rev, old_roster, new_roster, excluded); } - -// commands.cc automate.cc - -void -get_unrestricted_working_revision_and_rosters(app_state & app, - revision_set & rev, - roster_t & old_roster, - roster_t & new_roster) -{ - vector empty_args; - std::set saved_exclude_patterns(app.exclude_patterns); - app.exclude_patterns.clear(); - get_working_revision_and_rosters(app, empty_args, rev, old_roster, new_roster); - app.exclude_patterns = saved_exclude_patterns; -} ============================================================ --- restrictions.hh 68df5137976d04348d5a0a7a965254cb2664b32c +++ restrictions.hh bbce72d5483ff1f554f69fb41f6d3a6157d6037e @@ -62,10 +62,4 @@ roster_t & old_roster, roster_t & new_roster); -void -get_unrestricted_working_revision_and_rosters(app_state & app, - revision_set & rev, - roster_t & old_roster, - roster_t & new_roster); - #endif // header guard ============================================================ --- tests/t_automate_get_manifest_of.at 861f8c3fbaf0cfdaed8a22f195d3f96ded76ebec +++ tests/t_automate_get_manifest_of.at 380a79025d1f26259acf7b6a11a35a636c5f1dee @@ -10,6 +10,12 @@ content @<:@4cbd040533a2f43fc6691d773d510cda70f4126a@:>@ ]) +AT_DATA(expected2, [dir "" + + file "foo" +content @<:@9fd2be4badf713d640ae46bf4547d1549654dfe5@:>@ +]) + AT_DATA(empty, []) ADD_FILE(foo, [blah @@ -40,4 +46,11 @@ AT_CHECK(CANONICALISE(stdout)) AT_CHECK(cmp empty stdout) +# check that modified working copy manifest is correct +AT_DATA(foo, [bla bla +]) +AT_CHECK(MONOTONE automate get_manifest_of, [], [stdout], [ignore]) +AT_CHECK(CANONICALISE(stdout)) +AT_CHECK(cmp expected2 stdout) + AT_CLEANUP