# # # patch "mtn_cvs/cvs_sync.cc" # from [907df8ec09bb24c1b0f9937effd2b7d1465a4d6f] # to [e3ca21e430e1de41b51a217b1f9e03eb92eac5f0] # # patch "mtn_cvs/cvs_sync.hh" # from [859816132966f9bd79496cf9a94e7ebccb108bef] # to [1fca0a84ef4b6803903751bfbdfc56ea5f281650] # ============================================================ --- mtn_cvs/cvs_sync.cc 907df8ec09bb24c1b0f9937effd2b7d1465a4d6f +++ mtn_cvs/cvs_sync.cc e3ca21e430e1de41b51a217b1f9e03eb92eac5f0 @@ -371,7 +371,7 @@ build_change_set(const cvs_client &c, mt safe_insert(cs.deltas_applied, std::make_pair(f->first, std::make_pair(f->second.first,fn->second->sha1sum))); // cvs_delta[path.as_internal()]=fn->second; } -#warning 2do mode_change +#warning 2do mode_change ? // cs.attrs_cleared cs.attrs_set //if (fn->second.second->?? } @@ -386,6 +386,10 @@ build_change_set(const cvs_client &c, mt add_missing_parents(oldr, sp, cs); safe_insert(cs.files_added, make_pair(sp, f->second->sha1sum)); // cvs_delta[f->first]=f->second; + if (f->second->mode&0111) + safe_insert(cs.attrs_set, std::make_pair(std::make_pair(sp, attr_key("mtn:execute")), attr_value("true"))); + if (f->second->keyword_substitution=="-kb") + safe_insert(cs.attrs_set, std::make_pair(std::make_pair(sp, attr_key("mtn:manual_merge")), attr_value("true"))); } } } ============================================================ --- mtn_cvs/cvs_sync.hh 859816132966f9bd79496cf9a94e7ebccb108bef +++ mtn_cvs/cvs_sync.hh 1fca0a84ef4b6803903751bfbdfc56ea5f281650 @@ -66,6 +66,7 @@ typedef std::map cvs_manifest; +// a (atomic) checkin to cvs struct cvs_edge // careful this name is also used in cvs_import { std::string changelog; @@ -104,6 +105,7 @@ bool operator<=(const file_state &,const bool operator<(const file_state &,const cvs_edge &); bool operator<=(const file_state &,const cvs_edge &); +// branch (of a module) data and cvs abstraction class cvs_repository : public cvs_client { public: