# # # patch "rcs_import.cc" # from [a54dd3b89ffcb2b03a1a4f25fd0da7dab4619729] # to [eda066bc6d2da537fe2859165dd1493716428ad5] # ============================================================ --- rcs_import.cc a54dd3b89ffcb2b03a1a4f25fd0da7dab4619729 +++ rcs_import.cc eda066bc6d2da537fe2859165dd1493716428ad5 @@ -2343,7 +2343,7 @@ write_graphviz_partial(cvs_history & cvs #ifdef DEBUG_GRAPHVIZ void write_graphviz_partial(cvs_history & cvs, string const & desc, - set & blobs_to_mark, + vector & blobs_to_mark, int add_depth); void @@ -2355,10 +2355,10 @@ protected: { protected: cvs_history & cvs; - set & cycle_members; + vector & cycle_members; public: - blob_splitter(cvs_history & c, set & cm) + blob_splitter(cvs_history & c, vector & cm) : cvs(c), cycle_members(cm) { } @@ -2397,19 +2397,14 @@ public: // We run Dijkstra's algorithm to find the shortest path from e.second // to e.first. All vertices in that path are part of the smallest // cycle which includes this back edge. - vector tmp; insert_iterator< vector > - ity(tmp, tmp.begin()); + ity(cycle_members, cycle_members.begin()); dijkstra_shortest_path(cvs, e.first, e.second, ity, true, true, true, // follow all blobs false, make_pair(invalid_blob, invalid_blob), 0); - I(!tmp.empty()); - for (vector::iterator i = tmp.begin(); - i != tmp.end(); ++i) - if (cycle_members.find(*i) == cycle_members.end()) - cycle_members.insert(*i); + I(!cycle_members.empty()); #ifdef DEBUG_GRAPHVIZ write_graphviz_partial(cvs, "splitter", cycle_members, 5); @@ -2839,13 +2834,13 @@ public: #ifdef DEBUG_GRAPHVIZ { - set blobs_to_show; + vector blobs_to_show; for (vector::iterator i = path_a.begin(); i != path_a.end(); ++i) - blobs_to_show.insert(*i); + blobs_to_show.push_back(*i); for (vector::iterator i = path_b.begin(); i != path_b.end(); ++i) - blobs_to_show.insert(*i); + blobs_to_show.push_back(*i); write_graphviz_partial(cvs, "splitter", blobs_to_show, 5); } @@ -3166,10 +3161,10 @@ public: void back_edge(Edge e) { #ifdef DEBUG_GRAPHVIZ - set blobs_to_show; + vector blobs_to_show; - blobs_to_show.insert(e.first); - blobs_to_show.insert(e.second); + blobs_to_show.push_back(e.first); + blobs_to_show.push_back(e.second); write_graphviz_partial(cvs, "invalid_back_edge", blobs_to_show, 5); #endif @@ -3310,7 +3305,7 @@ void } void -split_cycle(cvs_history & cvs, set const & cycle_members) +split_cycle(cvs_history & cvs, vector const & cycle_members) { I(!cycle_members.empty()); @@ -3318,7 +3313,7 @@ split_cycle(cvs_history & cvs, set oldest_event; typedef map::iterator oe_ity; - typedef set::const_iterator cm_ity; + typedef vector::const_iterator cm_ity; for (cm_ity cc = cycle_members.begin(); cc != cycle_members.end(); ++cc) { // Nothing should ever depend on tags and branch_end blobs, thus @@ -3327,7 +3322,7 @@ split_cycle(cvs_history & cvs, set & blob_events = cvs.blobs[*cc].get_events(); + vector & blob_events = cvs.blobs[*cc].get_events(); for (blob_event_iter ity = blob_events.begin(); ity != blob_events.end(); ++ity) { @@ -3401,7 +3396,8 @@ split_cycle(cvs_history & cvs, setbi) != cycle_members.end()) + if (find(cycle_members.begin(), cycle_members.end(), dep_ev->bi) + != cycle_members.end()) { in_cycle_dependencies.insert(make_pair(this_ev, dep_ev)); in_cycle_dependents.insert(make_pair(dep_ev, this_ev)); @@ -4212,7 +4208,7 @@ write_graphviz_partial(cvs_history & cvs void write_graphviz_partial(cvs_history & cvs, string const & desc, - set & blobs_to_mark, + vector & blobs_to_mark, int add_depth) { std::ofstream viz_file; @@ -4607,7 +4603,7 @@ import_cvs_repo(options & opts, while (1) { // this set will be filled with the blobs in a cycle - set cycle_members; + vector cycle_members; cvs.import_order.clear(); blob_splitter vis(cvs, cycle_members);