bool RCS::undoLastEnabled()
{
- return true;
+ return owner_->hasReadonlyFlag();
}
LYXERR(Debug::LYXVC, line << '\n');
if (prefixIs(line, "date:")) {
smatch sm;
- regex_match(line, sm, reg);
- //sm[0]; // whole matched string
- rev_date_cache_ = sm[1];
- rev_time_cache_ = sm[2];
- //sm[3]; // GMT offset
- rev_author_cache_ = sm[4];
+ if (regex_match(line, sm, reg)) {
+ //sm[0]; // whole matched string
+ rev_date_cache_ = sm[1];
+ rev_time_cache_ = sm[2];
+ //sm[3]; // GMT offset
+ rev_author_cache_ = sm[4];
+ } else
+ LYXERR(Debug::LYXVC, "\tCannot parse line. Skipping.");
break;
}
}
// fill the rest of the attributes for a single file
if (rev_file_cache_.empty())
- if (!getFileRevisionInfo())
+ if (!getFileRevisionInfo()) {
rev_file_cache_ = "?";
+ rev_file_abbrev_cache_ = "?";
+ }
switch (info) {
case LyXVC::File:
if (rev_file_cache_ == "?")
return string();
return rev_file_cache_;
+ case LyXVC::FileAbbrev:
+ if (rev_file_abbrev_cache_ == "?")
+ return string();
+ return rev_file_abbrev_cache_;
case LyXVC::Author:
return rev_author_cache_;
case LyXVC::Date:
return false;
}
- doVCCommand("git log -n 1 --pretty=format:%H%n%an%n%ai " + quoteName(onlyFileName(owner_->absFileName()))
+ doVCCommand("git log -n 1 --pretty=format:%H%n%h%n%an%n%ai " + quoteName(onlyFileName(owner_->absFileName()))
+ " > " + quoteName(tmpf.toFilesystemEncoding()),
FileName(owner_->filePath()));
if (ifs)
getline(ifs, rev_file_cache_);
+ if (ifs)
+ getline(ifs, rev_file_abbrev_cache_);
if (ifs)
getline(ifs, rev_author_cache_);
if (ifs) {
}
doVCCommand("git describe --abbrev --dirty --long > " + quoteName(tmpf.toFilesystemEncoding()),
- FileName(owner_->filePath()));
+ FileName(owner_->filePath()),
+ false); //git describe returns $?=128 when no tag found (but git repo still exists)
if (tmpf.empty())
return false;