# # patch "CVS_prot" # from [69a5a850f895215cfd978673389e2e1edcfbc06e] # to [b4916b4ac1eefd54e62866706c81f57cca3c14a9] # # patch "cvs_client.cc" # from [c06920da40866e8caf10ecf0dba73566952491e0] # to [b5adb5aa8b54c88e42335efb79343e1d11cd2aa0] # ======================================================================== --- CVS_prot 69a5a850f895215cfd978673389e2e1edcfbc06e +++ CVS_prot b4916b4ac1eefd54e62866706c81f57cca3c14a9 @@ -133,3 +133,6 @@ correct < when calculating manifests push: changelog on merge faster initial db-access (multimap? without timestamp access?) + +tests: md5sum failure + merge+commit without changes ======================================================================== --- cvs_client.cc c06920da40866e8caf10ecf0dba73566952491e0 +++ cvs_client.cc b5adb5aa8b54c88e42335efb79343e1d11cd2aa0 @@ -360,6 +360,10 @@ { W(F("%s\n") % x.substr(len)); goto loop; } + if (x=="F ") + { // flush stderr + goto loop; + } if (begins_with(x,"M ",len)) { result.push_back(std::make_pair(std::string(),x.substr(len))); return true; @@ -406,7 +410,7 @@ result.push_back(std::make_pair("path",readline())); std::string length=readline(); result.push_back(std::make_pair("length",length)); - result.push_back(std::make_pair("data",read_n(atol(length.c_str())))); + result.push_back(std::make_pair("data",read_n(lexical_cast(length.c_str())))); return true; } if (begins_with(x,"Mod-time ",len)) @@ -459,9 +463,16 @@ result.push_back(std::make_pair("mode",readline())); std::string length=readline(); result.push_back(std::make_pair("length",length)); - result.push_back(std::make_pair("data",read_n(atol(length.c_str())))); + result.push_back(std::make_pair("data",read_n(lexical_cast(length.c_str())))); return true; } + if (x=="Mbinary ") + { result.push_back(std::make_pair("CMD",x.substr(0,len-1))); + std::string length=readline(); + result.push_back(std::make_pair("length",length)); + result.push_back(std::make_pair("data",read_n(lexical_cast(length.c_str())))); + return true; + } if (x=="error ") { result.push_back(std::make_pair("CMD","error")); return true; @@ -1000,7 +1011,7 @@ else if (lresult[0].second=="Template") { I(lresult.size()==5); I(lresult[3].first=="length"); - long len = atol(lresult[3].second.c_str()); + long len = lexical_cast(lresult[3].second.c_str()); I(len >= 0); I(lresult[4].second.size() == (size_t) len); L(F("found commit template %s:\n%s") % lresult[2].second % lresult[4].second);