# # patch "cvs_client.cc" # from [5ad6e29745a285a780633279873b49f0e2e471de] # to [2fccad457caf925376c7682b0336c1e33437a757] # # patch "cvs_client.hh" # from [bacffa91da3672e0ebcb26d168ab0a0bca36dc01] # to [3dd50d9c26c5da9c25424524266654257d8820a6] # # patch "cvs_sync.cc" # from [41e0318022da8a3d58c194fe481a77e58a0e2478] # to [7744452d62d5ecc58a9c60f2158372f55529cfb5] # # patch "cvs_sync.hh" # from [db114a878b2a309db023e78b7fb188d6fb8680e4] # to [68e39988bc37a431482eaa0209dd27b33764bc2e] # ======================================================================== --- cvs_client.cc 5ad6e29745a285a780633279873b49f0e2e471de +++ cvs_client.cc 2fccad457caf925376c7682b0336c1e33437a757 @@ -185,9 +185,9 @@ } cvs_client::cvs_client(const std::string &repository, const std::string &_module, - bool do_connect) + std::string const &_branch, bool do_connect) : byte_in_ticker(), byte_out_ticker(), - gzip_level(), pserver(), module(_module) + gzip_level(), pserver(), module(_module), branch(_branch) { // parse the arguments { unsigned len; std::string d_arg=repository; ======================================================================== --- cvs_client.hh bacffa91da3672e0ebcb26d168ab0a0bca36dc01 +++ cvs_client.hh 3dd50d9c26c5da9c25424524266654257d8820a6 @@ -12,6 +12,9 @@ #include "netxx_pipe.hh" #include +/* this class encapsulates all communication with a CVS server over a pipe + or network link */ + class cvs_client {public: struct update @@ -128,12 +131,14 @@ protected: std::string root; std::string module; + std::string branch; std::string host; // for author certification void reconnect(); static std::string localhost_name(); public: - cvs_client(const std::string &repository, const std::string &module, bool connect=true); + cvs_client(const std::string &repository, const std::string &module, + std::string const& branch=std::string(), bool connect=true); ~cvs_client(); static bool begins_with(const std::string &s, const std::string &sub, unsigned &len); ======================================================================== --- cvs_sync.cc 41e0318022da8a3d58c194fe481a77e58a0e2478 +++ cvs_sync.cc 7744452d62d5ecc58a9c60f2158372f55529cfb5 @@ -981,9 +981,10 @@ } cvs_repository::cvs_repository(app_state &_app, const std::string &repository, - const std::string &module, bool connect) - : cvs_client(repository,module,connect), app(_app), file_id_ticker(), - revision_ticker(), cvs_edges_ticker(), remove_state(), sync_since(-1) + const std::string &module, const std::string &branch, bool connect) + : cvs_client(repository,module,branch,connect), app(_app), + file_id_ticker(), revision_ticker(), cvs_edges_ticker(), + remove_state(), sync_since(-1) { file_id_ticker.reset(new ticker("file ids", "F", 10)); remove_state=remove_set.insert(file_state(0,"-",true)).first; @@ -1048,15 +1049,6 @@ } } -#if 0 -std::ostream &operator<<(std::ostream &o, const cvs_manifest &mf) -{ for (cvs_manifest::const_iterator i=mf.begin(); i!=mf.end(); ++i) - { o << i->first << ' ' << i->second->cvs_version << ','; - } - return o; -} -#endif - std::set::iterator cvs_repository::commit( std::set::iterator parent, const revision_id &rid, bool &fail) { // check that it's the last one ======================================================================== --- cvs_sync.hh db114a878b2a309db023e78b7fb188d6fb8680e4 +++ cvs_sync.hh 68e39988bc37a431482eaa0209dd27b33764bc2e @@ -172,7 +172,9 @@ void takeover(); public: - cvs_repository(app_state &app, const std::string &repository, const std::string &module, bool connect=true); + cvs_repository(app_state &app, const std::string &repository, + const std::string &module, const std::string &branch=std::string(), + bool connect=true); std::string debug() const;