# # # patch "mtn_cvs/cvs_client.cc" # from [a8d4839396f356e885fe7a003459dccc400fa3d2] # to [97433a814c27a9862cf1530603747a98fb5e7728] # # patch "mtn_cvs/cvs_client.hh" # from [e31532d2349e01288a48c654f5defb4692ef0895] # to [788496865cc0bf8573b5faedd6aabf65e494f061] # # patch "mtn_cvs/cvs_sync.cc" # from [f13e7e1a94e721d49d2f7f4304454e54797326a3] # to [faa92a8506b60dc94bb90f16a9fec0cce09e8b40] # ============================================================ --- mtn_cvs/cvs_client.cc a8d4839396f356e885fe7a003459dccc400fa3d2 +++ mtn_cvs/cvs_client.cc 97433a814c27a9862cf1530603747a98fb5e7728 @@ -1577,3 +1577,37 @@ void cvs_client::AddDirectory(std::strin Directory(parent); SendCommand(std::string("add"),std::vector(1,name)); } + +int cvs_client::permissions2int(std::string const& p) +{ + return 0644; +} + +std::string cvs_client::int2permissions(int p) +{ + std::string result; + if (p&0700) + { + result += "u="; + if (p&0400) result+= "r"; + if (p&0200) result+= "w"; + if (p&0100) result+= "x"; + } + if (p&0070) + { + if (!result.empty()) result+=","; + result += "g="; + if (p&0040) result+= "r"; + if (p&0020) result+= "w"; + if (p&0010) result+= "x"; + } + if (p&0007) + { + if (!result.empty()) result+=","; + result += "o="; + if (p&0004) result+= "r"; + if (p&0002) result+= "w"; + if (p&0001) result+= "x"; + } + return result; +} ============================================================ --- mtn_cvs/cvs_client.hh e31532d2349e01288a48c654f5defb4692ef0895 +++ mtn_cvs/cvs_client.hh 788496865cc0bf8573b5faedd6aabf65e494f061 @@ -177,6 +177,8 @@ public: void drop_connection(); static std::string time_t2rfc822(time_t t); static time_t Entries2time_t(const std::string &t); + static int permissions2int(std::string const& p); + static std::string int2permissions(int p); void validate_path(const std::string &local, const std::string &server); }; ============================================================ --- mtn_cvs/cvs_sync.cc f13e7e1a94e721d49d2f7f4304454e54797326a3 +++ mtn_cvs/cvs_sync.cc faa92a8506b60dc94bb90f16a9fec0cce09e8b40 @@ -323,7 +323,9 @@ void add_missing_parents(mtn_automate::m sub2.dirname_basename(sub,comp); components.push_back(std::make_pair(sub,comp)); } while (!sub.empty()); - for (std::vector >::const_reverse_iterator i=components.rbegin();i!=components.rend();++i) + for (std::vector >::const_reverse_iterator i=components.rbegin(); + i!=static_cast >::const_reverse_iterator>(components.rend()); + ++i) { L(FL("path comp '%s'\n") % i->first); // already added? if (cs.dirs_added.find(i->first)!=cs.dirs_added.end()) continue;