# # # patch "rcs_import.cc" # from [2388a42613d30026597f1d0afc3f4ba90ed777e8] # to [980aa0eaee7f7e930883caacbc597769eeea3609] # ============================================================ --- rcs_import.cc 2388a42613d30026597f1d0afc3f4ba90ed777e8 +++ rcs_import.cc 980aa0eaee7f7e930883caacbc597769eeea3609 @@ -663,7 +663,7 @@ parse_time(const char * dp) return time; } -static void +static cvs_event_ptr process_rcs_branch(string const & begin_version, vector< piece > const & begin_lines, data const & begin_data, @@ -812,20 +812,24 @@ process_rcs_branch(string const & begin_ } // recursively process child branches - process_rcs_branch(*i, branch_lines, branch_data, - branch_id, r, db, cvs, dryrun); - + cvs_event_ptr first_event_in_branch = + process_rcs_branch(*i, branch_lines, branch_data, + branch_id, r, db, cvs, dryrun); if (!priv) L(FL("finished RCS branch %s = '%s'") % (*i) % branchname); else L(FL("finished private RCS branch %s") % (*i)); + if (first_event_in_branch) + { cvs_event_ptr branch_event = boost::static_pointer_cast( shared_ptr( new cvs_event_branch(curr_commit, cvs.branchname_interner.intern(branchname)))); + first_event_in_branch->dependencies.push_back(branch_event); + // FIXME: is this still needed here? // make sure curr_commit exists in the blob cvs.get_blob(curr_commit->get_digest(), false); @@ -841,6 +845,7 @@ process_rcs_branch(string const & begin_ // that comes after the new branchpoint if (last_commit) last_commit->dependencies.push_back(branch_event); + } } if (!r.deltas.find(curr_version)->second->next.empty()) @@ -855,6 +860,8 @@ process_rcs_branch(string const & begin_ } else break; } + + return curr_commit; }