/// 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.
*/
const std::string getLogFile() const;
- ///
+ /**
+ * We do not support this generally. In RCS/SVN file read-only flag
+ * is often connected with locking state and one has to be careful to
+ * keep things in synchro once we would allow user to toggle
+ * read-only flags.
+ */
void toggleReadOnly();
/// 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.
- std::string const & locker() const;
+ /**
+ * 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 revisionInfo(RevisionInfo const info) const;
private:
///