/// 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?
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.
/// 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:
///