X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyXVC.h;h=f0302eee6637e40f9a3ae4765f3d0b19ba29e5ef;hb=dad3c8ce74d1ebea92973bea5ca44f97d660d38e;hp=df16efcd840410c743a085b6e7a31cd35af5fa3b;hpb=532ab0fb1b8a755bec74b205073e256b8cfbe001;p=lyx.git diff --git a/src/LyXVC.h b/src/LyXVC.h index df16efcd84..f0302eee66 100644 --- a/src/LyXVC.h +++ b/src/LyXVC.h @@ -67,6 +67,13 @@ public: /// Register the document as an VC file. bool registrer(); + + // std::string used as a return value in functions below are + // workaround to defer messages to be displayed in UI. If message() + // is used directly, message string is immediately overwritten + // by the next multiple messages on the top of the processed dispatch + // machinery. + /// Unlock and commit changes. Returns log. std::string checkIn(); /// Does the current VC supports this operation? @@ -97,6 +104,20 @@ public: void undoLast(); /// Does the current VC supports this operation? bool undoLastEnabled() const; + /** + * Prepare revision rev of the file into newly created temporary file + * and save the filename into parameter f. + * Parameter rev can be either revision number or negative number + * which is interpreted as how many revision back from the current + * one do we want. rev=0 is reserved for the last (committed) revision. + * We need rev to be string, since in various VCS revision is not integer. + * If RCS addressed by a single number, it is automatically used + * as the last number in the whole revision specification (it applies + * for retrieving normal revisions (rev>0) or backtracking (rev<0). + */ + bool prepareFileRevision(std::string const & rev, std::string & f); + /// Does the current VC supports this operation? + bool prepareFileRevisionEnabled(); /** * Generate a log file and return the filename. @@ -116,24 +137,30 @@ public: /// Is the document under administration by VCS? bool inUse() const; - /// Returns the version number. - //std::string const & version() const; - /// Returns the version number. + /// Returns the RCS + version number for messages std::string const versionString() const; /** - * Returns the userid of the person who has locked the doc. - * FIXME This property is descendant from the original VCS - * and used in RCS for user id or "unlocked" strings. - * It would be problem to use this under SVN since getting - * the locker would need connection to server any time we - * load document. SVN currently (mis)uses this as a signal - * for locking state, as we do not have API for vcstatus(). - * The RCS code for user id parsing is working but we don't display - * it anywhere. One possibility is to provide proper vcstatus() - * interface and kill the whole locker thing. + * Returns whether we use locking for the given file. + */ + bool locking() const; + + // type of the revision information + enum RevisionInfo { + Unknown = 0, + File = 1, + Tree = 2, + Author = 3, + Date = 4, + Time = 5 + }; + + /** + * Return revision info specified by the argument. + * Its safe to call it regardless VCS is in usage or this + * info is (un)available. Returns empty string in such a case. */ - std::string const & locker() const; + std::string revisionInfo(RevisionInfo const info) const; private: ///