# # # patch "mtn_cvs/cvs_sync.cc" # from [dc21e99f95ff797ada1c96ac536375dbcbf7c0d4] # to [b6bd457a8fdf77586e279aaed02ee8bd16c28c51] # ============================================================ --- mtn_cvs/cvs_sync.cc dc21e99f95ff797ada1c96ac536375dbcbf7c0d4 +++ mtn_cvs/cvs_sync.cc b6bd457a8fdf77586e279aaed02ee8bd16c28c51 @@ -644,8 +644,13 @@ mtn_automate::sync_map_t cvs_repository: for (std::map::const_iterator i=sd.begin(); i!=sd.end();++i) { split_path sp; - file_path_internal(i->first).split(sp); - state[std::make_pair(sp,attr_key(app.opts.domain()+":directory"))]=i->second; + std::string dirname=i->first; + if (!dirname.empty()) + { I(dirname[dirname.size()-1]=='/'); + dirname.erase(--dirname.end()); + } + file_path_internal(dirname).split(sp); + state[std::make_pair(sp,attr_key(app.opts.domain()+":path"))]=i->second; } for (cvs_manifest::const_iterator i=e.xfiles.begin(); i!=e.xfiles.end(); ++i) @@ -1223,7 +1228,7 @@ cvs_sync::cvs_repository *cvs_sync::prep } N(!repository.empty(), F("you must name a repository, I can't guess")); N(!module.empty(), F("you must name a module, I can't guess")); - + cvs_repository *repo = new cvs_repository(app,repository,module,branch); // turn compression on when not DEBUGGING if (!getenv("CVS_CLIENT_LOG")) @@ -1757,9 +1762,13 @@ void cvs_repository::parse_module_paths( { if (i->first.second()==app.opts.domain()+":path") { L(FL("found module %s:%s") % i->first.first % i->second()); - sd[file_path(i->first.first).as_internal()]=i->second(); + sd[file_path(i->first.first).as_internal()+"/"]=i->second(); } } + // how can we know that this is all? + if (sd.empty()) + { sd[""]=root+"/"+module; + } SetServerDir(sd); }