X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fvc-backend.h;h=1c3fa62c1812470c415ea109a8bbe39922193de9;hb=98c966c64594611e469313314abd1e59524adb4a;hp=78e5d36a2ba3362e47c4a7b250910fb8fcfc4bd6;hpb=18b8221ede82350caa51cc7db33a1f874b4e7396;p=lyx.git diff --git a/src/vc-backend.h b/src/vc-backend.h index 78e5d36a2b..1c3fa62c18 100644 --- a/src/vc-backend.h +++ b/src/vc-backend.h @@ -1,4 +1,12 @@ // -*- C++ -*- +/** + * \file vc-backend.h + * Copyright 1995-2002 the LyX Team + * Read the file COPYING + * + * \author Lars Gullik Bjønnes + */ + #ifndef VC_BACKEND_H #define VC_BACKEND_H @@ -8,63 +16,76 @@ #endif #include "LString.h" -#include "support/syscall.h" class Buffer; -/// +/// A simple version control system interface class VCS { public: - /// + /// the status of the managed file enum VCStatus { - /// UNLOCKED, - /// LOCKED }; - /// + virtual ~VCS() {} - /// - virtual void scanMaster() = 0; - /// + + /// register a file for version control virtual void registrer(string const & msg) = 0; - /// + /// check in the current revision virtual void checkIn(string const & msg) = 0; - /// + /// check out for editing virtual void checkOut() = 0; - /// + /// revert current edits virtual void revert() = 0; - /// + /// FIXME virtual void undoLast() = 0; - /// + /** + * getLog - read the revision log into the given file + * @param fname file name to read into + */ virtual void getLog(string const &) = 0; - /// - string const & version() const { return version_; } - /// + /// return the current version description + virtual string const versionString() const = 0; + /// return the current version + string const & version() const { + return version_; + } + /// return the user who has locked the file string const & locker() const { return locker_; } - /// + /// set the owning buffer void owner(Buffer * b) { owner_ = b; } - /// + /// return the owning buffer Buffer * owner() const { return owner_; } - /// - VCStatus stat() const { return vcstat; } + /// return the lock status of this file + VCStatus status() const { return vcstatus; } protected: - /// - static int doVCCommand(string const &, string const &); + /// parse information from the version file + virtual void scanMaster() = 0; - /** The master VC file. For RCS this is *,v or RCS/ *,v. master should - have full path. - */ + /** + * doVCCommand - call out to the version control utility + * @param cmd the command to execute + * @param path the path from which to execute + * @return exit status + */ + static int doVCCommand(string const & cmd, string const & path); + + /** + * The master VC file. For RCS this is *,v or RCS/ *,v. master should + * have full path. + */ string master_; - + /// The status of the VC controlled file. - VCStatus vcstat; - - /** The version of the VC file. I am not sure if this can be a - string of if it must be a - float/int. */ + VCStatus vcstatus; + + /** + * The version of the VC file. I am not sure if this can be a + * string or if it must be a float/int. + */ string version_; - + /// The user currently keeping the lock on the VC file. string locker_; /// The buffer using this VC @@ -75,27 +96,33 @@ protected: /// class RCS : public VCS { public: - /// + + explicit RCS(string const & m); - /// - static string find_file(string const & file); - /// - static void retrive(string const & file); - /// - virtual void scanMaster(); - /// + + /// return the revision file for the given file, if found + static string const find_file(string const & file); + + static void retrieve(string const & file); + virtual void registrer(string const & msg); - /// + virtual void checkIn(string const & msg); - /// + virtual void checkOut(); - /// + virtual void revert(); - /// + virtual void undoLast(); - /// + virtual void getLog(string const &); -private: + + virtual string const versionString() const { + return "RCS: " + version_; + } + +protected: + virtual void scanMaster(); }; @@ -103,24 +130,32 @@ private: class CVS : public VCS { public: /// + explicit CVS(string const & m, string const & f); - /// - static string find_file(string const & file); - /// - virtual void scanMaster(); - /// + + /// return the revision file for the given file, if found + static string const find_file(string const & file); + virtual void registrer(string const & msg); - /// + virtual void checkIn(string const & msg); - /// + virtual void checkOut(); - /// + virtual void revert(); - /// + virtual void undoLast(); - /// + virtual void getLog(string const &); + + virtual string const versionString() const { + return "CVS: " + version_; + } + +protected: + virtual void scanMaster(); + private: string file_; }; -#endif +#endif // VCBACKEND_H