#ifndef LYX_VC_H
#define LYX_VC_H
-#include <boost/scoped_ptr.hpp>
+#include "support/docstring.h"
+#include "support/unique_ptr.h"
#include <string>
*/
class LyXVC {
public:
+ /// Return status of a command
+ enum CommandResult {
+ Cancelled, ///< command was cancelled
+ ErrorBefore, ///< error before executing command
+ ErrorCommand, ///< error while executing command
+ VCSuccess ///< command was executed successfully
+ };
///
LyXVC();
- ///
- ~LyXVC();
+ /// Status of the underlying VCS
+ docstring vcstatus() const;
/// Is \p fn under version control?
static bool fileInVC(support::FileName const & fn);
/** Not a good name perhaps. This function should be called whenever
// by the next multiple messages on the top of the processed dispatch
// machinery.
- /// Unlock and commit changes. Returns log.
- std::string checkIn();
+ ///
+ std::string rename(support::FileName const &);
+ /// Does the current VC support this operation?
+ bool renameEnabled() const;
+ ///
+ std::string copy(support::FileName const &);
+ /// Does the current VC support this operation?
+ bool copyEnabled() const;
+
+ /// Unlock and commit changes.
+ /// \p log is non-empty on success and may be empty on failure.
+ CommandResult checkIn(std::string & log);
/// Does the current VC support this operation?
bool checkInEnabled() const;
+ /// Should a log message be provided for next checkin?
+ bool isCheckInWithConfirmation() const;
/// Lock/update and prepare to edit document. Returns log.
std::string checkOut();
std::string toggleReadOnly();
/// Is the document under administration by VCS?
+ /// returns false for unregistered documents in a path managed by VCS
bool inUse() const;
/// Returns the RCS + version number for messages
Tree = 2,
Author = 3,
Date = 4,
- Time = 5
+ Time = 5,
+ FileAbbrev = 6
};
/**
Buffer * owner_;
///
- boost::scoped_ptr<VCS> vcs;
+ unique_ptr<VCS> vcs_;
};