# # patch "cvs_repository.cc" # from [94087a42546464bb043bddb5cf3129276a762ffb] # to [db68ec99a91ea5ffdc3bc1cd6fb17a858caa8364] # --- cvs_repository.cc +++ cvs_repository.cc @@ -686,21 +686,43 @@ { I(!f->second.known_states.empty()); if (!(*(f->second.known_states.begin()) <= (*e))) // the file does not exist yet (first is not below/equal current edge) + { W(F("%s before beginning %d/%d+%d\n") % f->first + % f->second.known_states.begin()->since_when + % e->time % (e->time2-e->time)); continue; + } +#if 0 if ((*(f->second.known_states.rend()) < (*e))) // the last revision was already processed (it remains this state) + { W(F("%s beyond end %d/%d+%d\n") % f->first + % f->second.known_states.rend()->since_when + % e->time % (e->time2-e->time)); continue; + } +#endif cvs_manifest::iterator mi=current_manifest.find(f->first); if (mi==current_manifest.end()) // the file is currently dead { cvs_file_state s=f->second.known_states.end(); +for (cvs_file_state s2=f->second.known_states.begin(); + s2!=f->second.known_states.end();++s2) +{ W(F("%s match %d/%d+%d %d %d\n") % f->first + % s2->since_when + % e->time % (e->time2-e->time) + % ((*s2)<=(*e)) + % ( next_edge==edges.end() || ((*s2)<(*next_edge)) )); +} // find last revision that fits but does not yet belong to next edge // use until end, or above range, or belongs to next edge for (cvs_file_state s2=f->second.known_states.begin(); s2!=f->second.known_states.end() && (*s2)<=(*e) - && ( next_edge==edges.end() || !((*s2)<(*next_edge)) ); + && ( next_edge==edges.end() || ((*s2)<(*next_edge)) ); ++s2) + { W(F("%s matches %d/%d+%d\n") % f->first + % s2->since_when + % e->time % (e->time2-e->time)); s=s2; + } if (s!=f->second.known_states.end() && !s->dead) // a matching revision was found @@ -714,7 +736,7 @@ ++s; if (s!=f->second.known_states.end() && (*s)<=(*e) - && ( next_edge==edges.end() || !((*s)<(*next_edge)) ) ) + && ( next_edge==edges.end() || ((*s)<(*next_edge)) ) ) { if (s->dead) current_manifest.erase(mi); else { mi->second=s;