Hi, As far as I can see, svn versions older than 1.4.0 are not supported just because the entries file is in xml. They changed this in 1.4.0. So, I just added a few lines to the 'dirty' parse in order to also support older versions. Vincent
Index: src/VCBackend.cpp =================================================================== --- src/VCBackend.cpp (revision 26235) +++ src/VCBackend.cpp (working copy) @@ -420,19 +420,34 @@ FileName const SVN::findFile(FileName const & file) { - // First we look for the CVS/Entries in the same dir + // First we look for the .svn/Entries in the same dir // where we have file. FileName const entries(onlyPath(file.absFilename()) + "/.svn/entries"); string const tmpf = onlyFilename(file.absFilename()); LYXERR(Debug::LYXVC, "LyXVC: Checking if file is under svn in `" << entries << "' for `" << tmpf << '\''); if (entries.isReadableFile()) { - // Ok we are at least in a CVS dir. Parse the CVS/Entries + // Ok we are at least in a svn dir. Parse the .svn/Entries // and see if we can find this file. We do a fast and // dirty parse here. ifstream ifs(entries.toFilesystemEncoding().c_str()); - string line, oldline; + string line, oldline, oldxmlline; while (getline(ifs, line)) { + // svn version < 1.4.0 + if (line.find("entries", 0) != -1) + oldxmlline.clear(); + if (line.find(tmpf,0) != -1) + if (oldxmlline == "dirorfile") + return entries; + else + oldxmlline=tmpf; + if (line.find("dir",0) != -1 || line.find("file",0) != -1) + if (oldxmlline == tmpf) + return entries; + else + oldxmlline="dirorfile"; + + // svn version >= 1.4.0 if (line == "dir" || line == "file") LYXERR(Debug::LYXVC, "\tEntries: " << oldline); if (oldline == tmpf && line == "file") @@ -545,7 +560,7 @@ void SVN::revert() { - // Reverts to the version in CVS repository and + // Reverts to the version in svn repository and // gets the updated version from the repository. string const fil = quoteName(onlyFilename(owner_->absFileName()));