#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
LyX loads a file. This function then checks for a master VC file (for
RCS this is *,v or RCS/ *,v ; for CVS this is CVS/Entries and .svn/entries
*/
bool file_found_hook(support::FileName const & fn);
- /** Is \p fn in under version control?
+ /** Is \p fn under version control?
This function should be run when a file is requested for loading,
but it does not exist. This function will then check for a VC master
file with the same name (see above function). If this exists the
// 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?
+ ///
+ 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();
- /// Does the current VC supports this operation?
+ /// Does the current VC support this operation?
bool checkOutEnabled() const;
/// Synchronize the whole archive with repository
std::string repoUpdate();
- /// Does the current VC supports this operation?
+ /// Does the current VC support this operation?
bool repoUpdateEnabled() const;
/**
/// Undo last check-in.
void undoLast();
- /// Does the current VC supports this operation?
+ /// Does the current VC support this operation?
bool undoLastEnabled() const;
/**
* Prepare revision rev of the file into newly created temporary file
* 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?
+ /// Does the current VC support this operation?
bool prepareFileRevisionEnabled();
/**
* keep things in synchro once we would allow user to toggle
* read-only flags.
*/
- void toggleReadOnly();
+ 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
Buffer * owner_;
///
- boost::scoped_ptr<VCS> vcs;
+ unique_ptr<VCS> vcs;
};