X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FVCBackend.h;h=2ee076f2e1d0b2b4ad8ad70a587a4dfa1e6e0419;hb=62af7ee772f16f154225d2d0b65d77f4376b6001;hp=970972af48b50db7d233d7647cfb6451dcdce21d;hpb=fb16e5cca1a30611cedebe6d32cf1132d615eb50;p=lyx.git diff --git a/src/VCBackend.h b/src/VCBackend.h index 970972af48..2ee076f2e1 100644 --- a/src/VCBackend.h +++ b/src/VCBackend.h @@ -35,9 +35,11 @@ public: NOLOCKING, }; - VCS(Buffer * b) : owner_(b) {} + VCS(Buffer * b) : vcstatus(NOLOCKING), owner_(b) {} virtual ~VCS() {} + /// the name of the vc backend + virtual std::string vcname() const = 0; /// register a file for version control virtual void registrer(std::string const & msg) = 0; /// can this operation be processed in the current VCS? @@ -49,7 +51,7 @@ public: /// copy a file. Return non-empty log on success, empty log on failure. virtual std::string copy(support::FileName const &, std::string const &) = 0; /// check in the current revision. - /// \p log is non-empty on success and may be empty on failure. + /// \p log is non-empty on success and may be empty on failure. virtual LyXVC::CommandResult checkIn(std::string const & msg, std::string & log) = 0; /// can this operation be processed in the current VCS? @@ -104,7 +106,7 @@ public: /// Check the directory of file and all parent directories /// for the existence of repository-info like .git or .svn static bool checkparentdirs(support::FileName const & file, std::string const & vcsdir); - + protected: /// parse information from the version file virtual void scanMaster() = 0; @@ -112,7 +114,7 @@ protected: /// 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); /** @@ -150,6 +152,8 @@ public: /// get file from repo, the caller must ensure that it does not exist locally static bool retrieve(support::FileName const & file); + virtual std::string vcname() const { return "RCS"; }; + virtual void registrer(std::string const & msg); virtual bool renameEnabled(); @@ -234,6 +238,8 @@ public: /// get file from repo, the caller must ensure that it does not exist locally static bool retrieve(support::FileName const & file); + virtual std::string vcname() const { return "CVS"; }; + virtual void registrer(std::string const & msg); virtual bool renameEnabled(); @@ -273,7 +279,7 @@ public: virtual void getLog(support::FileName const &); - /// Check for messages in cvs output. + /// Check for messages in cvs output. /// Returns conflict line. std::string scanLogFile(support::FileName const & f, std::string & status); @@ -328,7 +334,7 @@ private: 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 @@ -373,6 +379,8 @@ public: /// get file from repo, the caller must ensure that it does not exist locally static bool retrieve(support::FileName const & file); + virtual std::string vcname() const { return "SVN"; }; + virtual void registrer(std::string const & msg); virtual bool renameEnabled(); @@ -481,6 +489,8 @@ public: /// get file from repo, the caller must ensure that it does not exist locally static bool retrieve(support::FileName const & file); + virtual std::string vcname() const { return "GIT"; }; + virtual void registrer(std::string const & msg); virtual bool renameEnabled(); @@ -550,6 +560,8 @@ private: bool getFileRevisionInfo(); /// cache for file revision number, "?" if already unsuccessful, isNumber==true std::string rev_file_cache_; + /// cache for abbreviated file revision number, "?" if already unsuccessful, isNumber==true + std::string rev_file_abbrev_cache_; /// cache for author of last commit std::string rev_author_cache_; /// cache for date of last commit