X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FVCBackend.h;h=3dbf5579719900473e755ce18233aae9c450eaba;hb=78fa6abc083a99cc0b1e536a43c3a7da91d9fdb7;hp=b50fe371149b1f7ae15c34078f5862343e709df1;hpb=c6d4080694c300be7a198f2975a5b2900a76ab97;p=lyx.git diff --git a/src/VCBackend.h b/src/VCBackend.h index b50fe37114..3dbf557971 100644 --- a/src/VCBackend.h +++ b/src/VCBackend.h @@ -57,7 +57,7 @@ public: // can be this operation processed in the current RCS? virtual bool lockingToggleEnabled() = 0; /// revert current edits - virtual void revert() = 0; + virtual bool revert() = 0; // should a confirmation before revert requested? virtual bool isRevertWithConfirmation() = 0; /// FIXME @@ -91,6 +91,10 @@ protected: /// parse information from the version file virtual void scanMaster() = 0; + /// Prepare a version identifier suitable for RCS and CVS. + /// If needed converts last or relative number to the absolute revision. + bool makeRCSRevision(std::string const &version, std::string &revis) const; + // GUI container for doVCCommandCall int doVCCommand(std::string const & cmd, support::FileName const & path, bool reportError = true); /** @@ -147,7 +151,7 @@ public: virtual bool lockingToggleEnabled(); - virtual void revert(); + virtual bool revert(); virtual bool isRevertWithConfirmation(); @@ -214,7 +218,7 @@ public: virtual bool isRevertWithConfirmation(); - virtual void revert(); + virtual bool revert(); virtual void undoLast(); @@ -261,6 +265,24 @@ private: // revision number from scanMaster std::string version_; + /** + * doVCCommandWithOutput + * - call out to the version control utility + * - it is able to collect output in a file + * @param cmd the command to execute + * @param path the path from which to execute + * @param output the path where to store output + * @param reportError display of low level error message dialog + * @return exit status + */ + int doVCCommandWithOutput(std::string const & cmd, + support::FileName const & path, + support::FileName const & output, + bool reportError = true); + static int doVCCommandCallWithOutput(std::string const & cmd, + support::FileName const & path, + support::FileName const & output); + /// return the quoted pathname if Directory or filename if File virtual std::string const getTarget(OperationMode opmode) const; /// collect the diff of file or directory against repository @@ -280,6 +302,15 @@ private: virtual CvsStatus getStatus(); /// convert enum to string virtual docstring toString(CvsStatus status) const; + + /// cache the info values of current file revision + /// author, date and time of commit + std::string rev_author_cache_; + std::string rev_date_cache_; + std::string rev_time_cache_; + /// fills the cache values, returns true if successfull. + void getRevisionInfo(); + bool have_rev_info_; }; @@ -313,7 +344,7 @@ public: virtual bool lockingToggleEnabled(); - virtual void revert(); + virtual bool revert(); virtual bool isRevertWithConfirmation();