# # # patch "rcs_import.cc" # from [5000e12413e2db1a08bd7d82db9bef480a4c34cc] # to [8ee1249aab9cb258c808ad0afe117815b7d67ab2] # ============================================================ --- rcs_import.cc 5000e12413e2db1a08bd7d82db9bef480a4c34cc +++ rcs_import.cc 8ee1249aab9cb258c808ad0afe117815b7d67ab2 @@ -1231,6 +1231,29 @@ void boost::directedS > Graph; void +add_blob_dependency_edges(shared_ptr const & branch, + const cvs_blob_index i, + Graph & g) +{ + const cvs_blob & blob = branch->blobs[i]; + + for(blob_event_iter event = blob.begin(); event != blob.end(); ++event) + { + for(dependency_iter dep = (*event)->dependencies.begin(); + dep != (*event)->dependencies.end(); ++dep) + { + // we can still use get_blob here, as there is only one blob + // per digest + blob_index_iterator k = + branch->get_blob((*dep)->get_digest(), false); + L(FL("blob %d depends on blob %d") % i % k->second); + + add_edge(i, k->second, g); + } + } +} + +void split_blobs_at(shared_ptr const & branch, const Edge & e, Graph & g) { @@ -1304,24 +1327,8 @@ resolve_blob_dependencies(cvs_history &c // fill the graph with all blob dependencies as edges between // the blobs (vertices). for (cvs_blob_index i = 0; i < branch->blobs.size(); ++i) - { - for(blob_event_iter event = branch->blobs[i].begin(); - event != branch->blobs[i].end(); ++event) - { - for(dependency_iter dep = (*event)->dependencies.begin(); - dep != (*event)->dependencies.end(); ++dep) - { - // we can still use get_blob here, as there is only one blob - // per digest - blob_index_iterator k = - branch->get_blob((*dep)->get_digest(), false); - L(FL("blob %d depends on blob %d") % i % k->second); + add_blob_dependency_edges(branch, i, g); - add_edge(i, k->second, g); - } - } - } - // check for cycles vector< Edge > back_edges; blob_splitter< Edge > vis(*branch, back_edges);