]> git.lyx.org Git - lyx.git/blobdiff - src/vc-backend.C
remove CXX_WORKING_NAMESPACES
[lyx.git] / src / vc-backend.C
index 48f0d341b946c5977236ae2879120bb1b28ace2a..2d5c8383d6426ea96a0d6651ba088cc4c00b0484 100644 (file)
@@ -12,6 +12,7 @@
 #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"
@@ -25,7 +26,7 @@ int VCS::doVCCommand(string const & cmd, string const & path)
        lyxerr[Debug::LYXVC] << "doVCCommand: " << cmd << endl;
         Systemcalls one;
        Path p(path);
-       int ret = one.startscript(Systemcalls::System, cmd);
+       int const ret = one.startscript(Systemcalls::System, cmd);
        return ret;
 }
 
@@ -181,7 +182,8 @@ void RCS::undoLast()
 {
        lyxerr[Debug::LYXVC] << "LyXVC: undoLast" << endl;
        doVCCommand("rcs -o" + version() + " \""
-                   + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath);
+                   + OnlyFilename(owner_->fileName()) + "\"",
+                   owner_->filepath);
 }
 
 
@@ -204,12 +206,11 @@ string const CVS::find_file(string const & file)
 {
        // First we look for the CVS/Entries in the same dir
        // where we have file.
-       string dir = OnlyPath(file);
-       string tmpf = "/" + OnlyFilename(file) + "/";
-       dir += "/CVS/Entries";
+       string const dir = OnlyPath(file) + "/CVS/Entries";
+       string const tmpf = "/" + OnlyFilename(file) + "/";
        lyxerr[Debug::LYXVC] << "LyXVC: checking in `" << dir
                             << "' for `" << tmpf << "'" << endl;
-       FileInfo f(dir);
+       FileInfo const f(dir);
        if (f.readable()) {
                // Ok we are at least in a CVS dir. Parse the CVS/Entries
                // and see if we can find this file. We do a fast and
@@ -282,7 +283,8 @@ void CVS::registrer(string const & msg)
 void CVS::checkIn(string const & msg)
 {
        doVCCommand("cvs -q commit -m \"" + msg + "\" \""
-                   + OnlyFilename(owner_->fileName()) + "\"", owner_->filepath);
+                   + OnlyFilename(owner_->fileName()) + "\"",
+                   owner_->filepath);
        owner_->getUser()->owner()->getLyXFunc()->Dispatch("buffer-reload");
 }
 
@@ -296,10 +298,15 @@ void CVS::checkOut()
 
 void CVS::revert()
 {
-       // not sure how to do this...
-       // rm file
-       // cvs update
-       lyxerr << "Sorry not implemented." << endl;
+       // Reverts to the version in CVS repository and
+       // gets the updated version from the repository.
+       string const fil = OnlyFilename(owner_->fileName());
+       
+       doVCCommand("rm -f \"" + fil + "\"; cvs update \"" + fil + "\"",
+                   owner_->filepath);
+       owner_->markLyxClean();
+       owner_->getUser()->owner()
+               ->getLyXFunc()->Dispatch("buffer-reload");
 }
 
 
@@ -312,7 +319,9 @@ void CVS::undoLast()
 }
 
 
-void CVS::getLog(string const &)
+void CVS::getLog(string const & tmpf)
 {
-       lyxerr << "Sorry not implemented." << endl;
+       doVCCommand("cvs log \""
+                   + OnlyFilename(owner_->fileName()) + "\" > " + tmpf,
+                   owner_->filepath);
 }