}
-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();
}
{
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;
}
//
/////////////////////////////////////////////////////////////////////
-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.
bool found = 0 == doVCCommandCall("svn info " + quoteName(fname),
file.onlyPath());
LYXERR(Debug::LYXVC, "SVN control: " << (found ? "enabled" : "disabled"));
- return found ? file : FileName();
+ return found;
}
// 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;
}
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()));
}
//
/////////////////////////////////////////////////////////////////////
-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.
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());
tmpf.refresh();
bool found = !tmpf.isFileEmpty();
LYXERR(Debug::LYXVC, "GIT control: " << (found ? "enabled" : "disabled"));
- return found ? file : FileName();
+ return found;
}