# # # patch "cvs_client.cc" # from [d4fc961d1c95a24db48099a7a591313baf654d57] # to [a79a7ae48e15f4d555a330a94b1bea9062295ad9] # # patch "tests/t_cvspull_cvsbranch.at" # from [2b85e1e11c63947dcc83e385d878f7defd410392] # to [dd49109af1d4638ec5355c78f7eb2a892c7e281c] # ============================================================ --- cvs_client.cc d4fc961d1c95a24db48099a7a591313baf654d57 +++ cvs_client.cc a79a7ae48e15f4d555a330a94b1bea9062295ad9 @@ -1164,6 +1164,7 @@ std::string dir,dir2,rcsfile; enum { st_normal, st_merge } state=st_normal; + bool confused=false; while (fetch_result(lresult)) { I(!lresult.empty()); unsigned len=0; @@ -1237,6 +1238,9 @@ { I(state==st_merge); break; } + else if (lresult[0].second=="Checked-in") + { confused=true; + } else { W(F("Update: unrecognized CMD %s\n") % lresult[0].second); } @@ -1279,6 +1283,10 @@ { W(F("Update: unrecognized response %s\n") % lresult[0].second); } } + if (confused) // cvs is an awfully stated machine ... + { reconnect(); + Update(file_revisions,cb); + } } void cvs_client::parse_entry(const std::string &line, std::string &new_revision, ============================================================ --- tests/t_cvspull_cvsbranch.at 2b85e1e11c63947dcc83e385d878f7defd410392 +++ tests/t_cvspull_cvsbranch.at dd49109af1d4638ec5355c78f7eb2a892c7e281c @@ -69,8 +69,7 @@ # pull into monotone -AT_CHECK(echo MONOTONE --branch=testbranch cvs_pull $CVSROOT test branch, [], [ignore], [ignore]) -exit 1 +AT_CHECK(MONOTONE --branch=testbranch cvs_pull $CVSROOT test branch, [], [ignore], [ignore]) # check presence of files