X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fvc-backend.C;h=81efc9f6ce2a6a7c6e0c085ec47c82d81f6a599e;hb=dacb5be6462e278d769686b7380984b584dd86ac;hp=8c0a29adf3e64044dea4df4d1504cf0bf018ae87;hpb=3660343dc7da7cb40b93448949dca02a579505d5;p=lyx.git diff --git a/src/vc-backend.C b/src/vc-backend.C index 8c0a29adf3..81efc9f6ce 100644 --- a/src/vc-backend.C +++ b/src/vc-backend.C @@ -12,16 +12,20 @@ #include "support/LRegex.h" #include "support/LSubstring.h" #include "support/path.h" +#include "support/filetools.h" #include "buffer.h" #include "LyXView.h" #include "lyxfunc.h" +using std::endl; +using std::ifstream; +using std::getline; -int VCS::doVCCommand(string const & cmd) +int VCS::doVCCommand(string const & cmd, string const & path) { lyxerr[Debug::LYXVC] << "doVCCommand: " << cmd << endl; Systemcalls one; - Path p(owner_->filepath); + Path p(path); int ret = one.startscript(Systemcalls::System, cmd); return ret; } @@ -34,7 +38,7 @@ RCS::RCS(string const & m) } -string RCS::find_file(string const & file) +string const RCS::find_file(string const & file) { string tmp(file); // Check if *,v exists. @@ -62,6 +66,15 @@ string RCS::find_file(string const & file) } +void RCS::retrive(string const & file) +{ + lyxerr[Debug::LYXVC] << "LyXVC::RCS: retrive.\n\t" << file << endl; + VCS::doVCCommand("co -q -r \"" + + file + "\"", + string()); +} + + void RCS::scanMaster() { lyxerr[Debug::LYXVC] << "LyXVC::RCS: scanMaster." << endl; @@ -94,7 +107,7 @@ void RCS::scanMaster() // get locker here if (contains(token, ";")) { locker_ = "Unlocked"; - vcstat = UNLOCKED; + vcstatus = UNLOCKED; continue; } string tmpt, s1, s2; @@ -106,7 +119,7 @@ void RCS::scanMaster() // s2 is user, and s1 is version if (s1 == version_) { locker_ = s2; - vcstat = LOCKED; + vcstatus = LOCKED; break; } } while (!contains(tmpt, ";")); @@ -130,9 +143,9 @@ void RCS::registrer(string const & msg) string cmd = "ci -q -u -i -t-\""; cmd += msg; cmd += "\" \""; - cmd += OnlyFilename(owner_->getFileName()); + cmd += OnlyFilename(owner_->fileName()); cmd += "\""; - doVCCommand(cmd); + doVCCommand(cmd, owner_->filepath); owner_->getUser()->owner()->getLyXFunc()->Dispatch("buffer-reload"); } @@ -140,7 +153,7 @@ void RCS::registrer(string const & msg) void RCS::checkIn(string const & msg) { doVCCommand("ci -q -u -m\"" + msg + "\" \"" - + OnlyFilename(owner_->getFileName()) + "\""); + + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath); owner_->getUser()->owner()->getLyXFunc()->Dispatch("buffer-reload"); } @@ -149,7 +162,7 @@ void RCS::checkOut() { owner_->markLyxClean(); doVCCommand("co -q -l \"" - + OnlyFilename(owner_->getFileName()) + "\""); + + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath); owner_->getUser()->owner()->getLyXFunc()->Dispatch("buffer-reload"); } @@ -157,7 +170,7 @@ void RCS::checkOut() void RCS::revert() { doVCCommand("co -f -u" + version() + " \"" - + OnlyFilename(owner_->getFileName()) + "\""); + + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath); // We ignore changes and just reload! owner_->markLyxClean(); owner_->getUser()->owner() @@ -169,14 +182,14 @@ void RCS::undoLast() { lyxerr[Debug::LYXVC] << "LyXVC: undoLast" << endl; doVCCommand("rcs -o" + version() + " \"" - + OnlyFilename(owner_->getFileName()) + "\""); + + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath); } void RCS::getLog(string const & tmpf) { doVCCommand("rlog \"" - + OnlyFilename(owner_->getFileName()) + "\" > " + tmpf); + + OnlyFilename(owner_->fileName()) + "\" > " + tmpf, owner_->filepath); } @@ -188,7 +201,7 @@ CVS::CVS(string const & m, string const & f) } -string CVS::find_file(string const & file) +string const CVS::find_file(string const & file) { // First we look for the CVS/Entries in the same dir // where we have file. @@ -222,11 +235,11 @@ void CVS::scanMaster() string tmpf = "/" + OnlyFilename(file_) + "/"; lyxerr[Debug::LYXVC] << "\tlooking for `" << tmpf << "'" << endl; string line; + LRegex reg("/(.*)/(.*)/(.*)/(.*)/(.*)"); while(getline(ifs, line)) { lyxerr[Debug::LYXVC] << "\t line: " << line << endl; if (contains(line, tmpf)) { // Ok extract the fields. - LRegex reg("/(.*)/(.*)/(.*)/(.*)/(.*)"); LRegex::SubMatches const & sm = reg.exec(line); //sm[0]; // whole matched string //sm[1]; // filename @@ -246,21 +259,13 @@ void CVS::scanMaster() << mod_date << "'" << endl; if (file_date == mod_date) { locker_ = "Unlocked"; - vcstat = UNLOCKED; + vcstatus = UNLOCKED; } else { // Here we should also to some more checking // to see if there are conflicts or not. locker_ = "Locked"; - vcstat = LOCKED; - } -#if 0 - for (LRegex::SubMatches::const_iterator cit = sm.begin(); - cit != sm.end(); ++cit) { - if ((*cit).first != string::npos) - lyxerr << string(line, (*cit).first, - (*cit).second) << endl; + vcstatus = LOCKED; } -#endif break; } } @@ -269,19 +274,24 @@ void CVS::scanMaster() void CVS::registrer(string const & msg) { - // cvs add + doVCCommand("cvs -q add -m \"" + msg + "\" \"" + + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath); + owner_->getUser()->owner()->getLyXFunc()->Dispatch("buffer-reload"); } void CVS::checkIn(string const & msg) { - // cvs commit + doVCCommand("cvs -q commit -m \"" + msg + "\" \"" + + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath); + owner_->getUser()->owner()->getLyXFunc()->Dispatch("buffer-reload"); } void CVS::checkOut() { - // cvs update + // cvs update or perhaps for cvs this should be a noop + lyxerr << "Sorry not implemented." << endl; } @@ -289,7 +299,8 @@ void CVS::revert() { // not sure how to do this... // rm file - // cvs update + // cvs update + lyxerr << "Sorry not implemented." << endl; } @@ -298,9 +309,11 @@ void CVS::undoLast() // merge the current with the previous version // in a reverse patch kind of way, so that the // result is to revert the last changes. + lyxerr << "Sorry not implemented." << endl; } void CVS::getLog(string const &) { + lyxerr << "Sorry not implemented." << endl; }