mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-01 21:45:23 +00:00
Simplify checking whether files are controlled by SVN and GIT.
This commit is contained in:
parent
05551a7cfb
commit
7e5c42593e
@ -537,25 +537,19 @@ CVS::CVS(FileName const & m, Buffer * b) : VCS(b)
|
|||||||
|
|
||||||
FileName const CVS::findFile(FileName const & file)
|
FileName const CVS::findFile(FileName const & file)
|
||||||
{
|
{
|
||||||
// First we look for the CVS/Entries in the same dir
|
LYXERR(Debug::LYXVC, "LyXVC: Checking if "
|
||||||
// where we have file.
|
<< onlyFileName(file.absFileName()) << "is under cvs");
|
||||||
|
// First we look for the CVS/Entries in the same dir where we have file.
|
||||||
// Note that it is not necessary to search parent directories, since
|
// Note that it is not necessary to search parent directories, since
|
||||||
// there will be a CVS/Entries file in every subdirectory.
|
// there will be a CVS/Entries file in every subdirectory.
|
||||||
FileName const entries(onlyPath(file.absFileName()) + "/CVS/Entries");
|
FileName const entries(onlyPath(file.absFileName()) + "/CVS/Entries");
|
||||||
string const tmpf = '/' + onlyFileName(file.absFileName()) + '/';
|
|
||||||
LYXERR(Debug::LYXVC, "LyXVC: Checking if file is under cvs in `" << entries
|
|
||||||
<< "' for `" << tmpf << '\'');
|
|
||||||
if (entries.isReadableFile()) {
|
if (entries.isReadableFile()) {
|
||||||
// Ok we are at least in a CVS dir. Parse the CVS/Entries
|
// We are in a CVS-managed directory
|
||||||
// and see if we can find this file. We do a fast and
|
// See if the file is known to CVS
|
||||||
// dirty parse here.
|
string const cmd = "cvs log " + quoteName(file.toFilesystemEncoding());
|
||||||
ifstream ifs(entries.toFilesystemEncoding().c_str());
|
int const ret = doVCCommandCall(cmd, file.onlyPath());
|
||||||
string line;
|
if (ret == 0)
|
||||||
while (getline(ifs, line)) {
|
return entries;
|
||||||
LYXERR(Debug::LYXVC, "\tEntries: " << line);
|
|
||||||
if (contains(line, tmpf))
|
|
||||||
return entries;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return FileName();
|
return FileName();
|
||||||
}
|
}
|
||||||
@ -1837,23 +1831,13 @@ bool GIT::findFile(FileName const & file)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now we check the status of the file.
|
// Now we check if the file is known to git.
|
||||||
TempFile tempfile("lyxvcout");
|
|
||||||
FileName tmpf = tempfile.name();
|
|
||||||
if (tmpf.empty()) {
|
|
||||||
LYXERR(Debug::LYXVC, "Could not generate logfile " << tmpf);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
string const fname = onlyFileName(file.absFileName());
|
string const fname = onlyFileName(file.absFileName());
|
||||||
LYXERR(Debug::LYXVC, "LyXVC: Checking if file is under git control for `"
|
LYXERR(Debug::LYXVC, "LyXVC: Checking if file is under git control for `"
|
||||||
<< fname << '\'');
|
<< fname << '\'');
|
||||||
doVCCommandCall("git ls-files " +
|
int const ret = doVCCommandCall("git log " + quoteName(fname),
|
||||||
quoteName(fname) + " > " +
|
|
||||||
quoteName(tmpf.toFilesystemEncoding()),
|
|
||||||
file.onlyPath());
|
file.onlyPath());
|
||||||
tmpf.refresh();
|
bool const found = (ret == 0);
|
||||||
bool found = !tmpf.isFileEmpty();
|
|
||||||
LYXERR(Debug::LYXVC, "GIT control: " << (found ? "enabled" : "disabled"));
|
LYXERR(Debug::LYXVC, "GIT control: " << (found ? "enabled" : "disabled"));
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user