X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FVCBackend.cpp;h=ca603c9e1f8ed89c1c3ea9cd35ed045815485c41;hb=e6b93f7489fc0738b6097d49cb7b16eed2b4fb1e;hp=26ac809646a42e00dc0e89917f80c5f69e925c23;hpb=2405788d84718f19be47ff8c03f93ef316a900f5;p=features.git diff --git a/src/VCBackend.cpp b/src/VCBackend.cpp index 26ac809646..ca603c9e1f 100644 --- a/src/VCBackend.cpp +++ b/src/VCBackend.cpp @@ -61,7 +61,7 @@ int VCS::doVCCommand(string const & cmd, FileName const & path, bool reportError if (ret && reportError) { docstring rcsmsg; if (prefixIs(cmd, "ci ")) - rcsmsg = "\n" + _("Perhaps the RCS package is not installed on your system?"); + rcsmsg = "\n" + _("Check whether the GNU RCS package is installed on your system."); frontend::Alert::error(_("Revision control error."), bformat(_("Some problem occurred while running the command:\n" "'%1$s'.") + rcsmsg, @@ -105,18 +105,18 @@ bool VCS::makeRCSRevision(string const &version, string &revis) const } -bool VCS::checkParentDirs(FileName const & file, std::string const & vcsdir) +FileName VCS::checkParentDirs(FileName const & start, std::string const & file) { - FileName dirname = file.onlyPath(); + FileName dirname = start.onlyPath(); do { - FileName tocheck = FileName(addName(dirname.absFileName(), vcsdir)); + FileName tocheck = FileName(addPathName(dirname.absFileName(), file)); LYXERR(Debug::LYXVC, "check file: " << tocheck.absFileName()); if (tocheck.exists()) - return true; - //this construct because of #8295 + return tocheck; + // this construct because of #8295 dirname = FileName(dirname.absFileName()).parentPath(); } while (!dirname.empty()); - return false; + return FileName(); } @@ -161,8 +161,8 @@ bool RCS::retrieve(FileName const & file) { LYXERR(Debug::LYXVC, "LyXVC::RCS: retrieve.\n\t" << file); // The caller ensures that file does not exist, so no need to check that. - return doVCCommandCall("co -q -r " + quoteName(file.toFilesystemEncoding()), - FileName()) == 0; + int const ret = doVCCommandCall("co -q -r " + quoteName(file.toFilesystemEncoding())); + return ret == 0; } @@ -1156,22 +1156,21 @@ bool CVS::prepareFileRevisionEnabled() // ///////////////////////////////////////////////////////////////////// -SVN::SVN(FileName const & m, Buffer * b) : VCS(b) +SVN::SVN(Buffer * b) : VCS(b) { // Here we know that the buffer file is either already in SVN or // about to be registered - master_ = m; locked_mode_ = false; scanMaster(); } -FileName const SVN::findFile(FileName const & file) +bool SVN::findFile(FileName const & file) { // First we check the existence of repository meta data. - if (!VCS::checkParentDirs(file, ".svn")) { + if (VCS::checkParentDirs(file, ".svn").empty()) { LYXERR(Debug::LYXVC, "Cannot find SVN meta data for " << file); - return FileName(); + return false; } // Now we check the status of the file. @@ -1180,7 +1179,7 @@ FileName const SVN::findFile(FileName const & file) bool found = 0 == doVCCommandCall("svn info " + quoteName(fname), file.onlyPath()); LYXERR(Debug::LYXVC, "SVN control: " << (found ? "enabled" : "disabled")); - return found ? file : FileName(); + return found; } @@ -1189,12 +1188,8 @@ void SVN::scanMaster() // vcstatus code is somewhat superflous, // until we want to implement read-only toggle for svn. vcstatus_ = NOLOCKING; - if (checkLockMode()) { - if (isLocked()) - vcstatus_ = LOCKED; - else - vcstatus_ = UNLOCKED; - } + if (checkLockMode()) + vcstatus_ = isLocked() ? LOCKED : UNLOCKED; } @@ -1250,7 +1245,7 @@ bool SVN::retrieve(FileName const & file) void SVN::registrer(string const & /*msg*/) { - doVCCommand("svn add -q " + quoteName(onlyFileName(owner_->absFileName())), + doVCCommand("svn add -q --parents " + quoteName(onlyFileName(owner_->absFileName())), FileName(owner_->filePath())); } @@ -1821,21 +1816,20 @@ bool SVN::toggleReadOnlyEnabled() // ///////////////////////////////////////////////////////////////////// -GIT::GIT(FileName const & m, Buffer * b) : VCS(b) +GIT::GIT(Buffer * b) : VCS(b) { // Here we know that the buffer file is either already in GIT or // about to be registered - master_ = m; scanMaster(); } -FileName const GIT::findFile(FileName const & file) +bool GIT::findFile(FileName const & file) { // First we check the existence of repository meta data. - if (!VCS::checkParentDirs(file, ".git")) { + if (VCS::checkParentDirs(file, ".git").empty()) { LYXERR(Debug::LYXVC, "Cannot find GIT meta data for " << file); - return FileName(); + return false; } // Now we check the status of the file. @@ -1843,7 +1837,7 @@ FileName const GIT::findFile(FileName const & file) FileName tmpf = tempfile.name(); if (tmpf.empty()) { LYXERR(Debug::LYXVC, "Could not generate logfile " << tmpf); - return FileName(); + return false; } string const fname = onlyFileName(file.absFileName()); @@ -1856,7 +1850,7 @@ FileName const GIT::findFile(FileName const & file) tmpf.refresh(); bool found = !tmpf.isFileEmpty(); LYXERR(Debug::LYXVC, "GIT control: " << (found ? "enabled" : "disabled")); - return found ? file : FileName(); + return found; }