# # # patch "rcs_import.cc" # from [b554642d6ec166395bd363271857a9ff7b106ace] # to [33ffecec56fc78a7c7f63ab8be611deefdba2373] # # patch "tests/importing_cvs_small_real_repo/test.manifest" # from [239a81e972fbdea494bf9d1ecbae1863c7cf2f9d] # to [d9fda57f45ca1f2b18c5d105ebd265bad68dbfbc] # ============================================================ --- rcs_import.cc b554642d6ec166395bd363271857a9ff7b106ace +++ rcs_import.cc 33ffecec56fc78a7c7f63ab8be611deefdba2373 @@ -2456,9 +2456,25 @@ blob_consumer::operator()(cvs_blob_index if (build_cset(blob, bstate, *cs) <= 0) return; - editable_roster_base editable_ros(bstate.ros, nis); + // add an attribute to the root node, which keeps track of what + // files at what RCS versions have gone into this revision. + string fval = "cvs\n"; + for (blob_event_iter i = blob.begin(); i != blob.end(); ++i) + { + shared_ptr ce = + boost::static_pointer_cast(*i); + fval += cvs.path_interner.lookup(ce->path) + "@"; + fval += cvs.rcs_version_interner.lookup(ce->rcs_version) + "\n"; + } + + attr_key k("mtn:origin_info"); + attr_value v(fval); + cs->attrs_set[make_pair(file_path(), k)] = v; + + editable_roster_base editable_ros(bstate.ros, nis); cs->apply_to(editable_ros); + manifest_id child_mid; calculate_ident(bstate.ros, child_mid); ============================================================ --- tests/importing_cvs_small_real_repo/test.manifest 239a81e972fbdea494bf9d1ecbae1863c7cf2f9d +++ tests/importing_cvs_small_real_repo/test.manifest d9fda57f45ca1f2b18c5d105ebd265bad68dbfbc @@ -1,6 +1,11 @@ format_version "1" format_version "1" -dir "" + dir "" +attr "mtn:origin_info" "cvs +tests/address@hidden +tests/address@hidden +src/address@hidden +" dir "src"