forked from qt-creator/qt-creator
ClearCase: Cleanup ClearCaseSync
* Simplify regexp matching * Remove QLatin1String Change-Id: Id362c8dd0dfe70c96990bd98800e8c4fb886300f Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
bb772ad97c
commit
15ab47cb3c
@@ -79,7 +79,7 @@ void ClearCaseSync::invalidateStatusAllFiles()
|
|||||||
|
|
||||||
void ClearCaseSync::processCleartoolLsLine(const QDir &viewRootDir, const QString &buffer)
|
void ClearCaseSync::processCleartoolLsLine(const QDir &viewRootDir, const QString &buffer)
|
||||||
{
|
{
|
||||||
const int atatpos = buffer.indexOf(QLatin1String("@@"));
|
const int atatpos = buffer.indexOf("@@");
|
||||||
|
|
||||||
if (atatpos == -1)
|
if (atatpos == -1)
|
||||||
return;
|
return;
|
||||||
@@ -92,23 +92,16 @@ void ClearCaseSync::processCleartoolLsLine(const QDir &viewRootDir, const QStrin
|
|||||||
QTC_CHECK(QFileInfo::exists(absFile));
|
QTC_CHECK(QFileInfo::exists(absFile));
|
||||||
QTC_CHECK(!absFile.isEmpty());
|
QTC_CHECK(!absFile.isEmpty());
|
||||||
|
|
||||||
const QRegularExpression reState("\\s*\\[[^\\]]*\\]"); // [hijacked]; [loaded but missing]
|
const QRegularExpression reState("^\\s*\\[[^\\]]*\\]"); // [hijacked]; [loaded but missing]
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
const QRegularExpressionMatch match = reState.match(buffer.midRef(wspos + 1));
|
||||||
const QRegularExpression::MatchOption mo = QRegularExpression::AnchoredMatchOption;
|
|
||||||
#else
|
|
||||||
const QRegularExpression::MatchOption mo = QRegularExpression::AnchorAtOffsetMatchOption;
|
|
||||||
#endif
|
|
||||||
const QRegularExpressionMatch match = reState.match(buffer, wspos + 1,
|
|
||||||
QRegularExpression::NormalMatch,
|
|
||||||
mo);
|
|
||||||
if (match.hasMatch()) {
|
if (match.hasMatch()) {
|
||||||
const QString ccState = match.captured();
|
const QString ccState = match.captured();
|
||||||
if (ccState.indexOf(QLatin1String("hijacked")) != -1)
|
if (ccState.indexOf("hijacked") != -1)
|
||||||
ClearCasePlugin::setStatus(absFile, FileStatus::Hijacked, true);
|
ClearCasePlugin::setStatus(absFile, FileStatus::Hijacked, true);
|
||||||
else if (ccState.indexOf(QLatin1String("loaded but missing")) != -1)
|
else if (ccState.indexOf("loaded but missing") != -1)
|
||||||
ClearCasePlugin::setStatus(absFile, FileStatus::Missing, false);
|
ClearCasePlugin::setStatus(absFile, FileStatus::Missing, false);
|
||||||
}
|
}
|
||||||
else if (buffer.lastIndexOf(QLatin1String("CHECKEDOUT"), wspos) != -1)
|
else if (buffer.lastIndexOf("CHECKEDOUT", wspos) != -1)
|
||||||
ClearCasePlugin::setStatus(absFile, FileStatus::CheckedOut, true);
|
ClearCasePlugin::setStatus(absFile, FileStatus::CheckedOut, true);
|
||||||
// don't care about checked-in files not listed in project
|
// don't care about checked-in files not listed in project
|
||||||
else if (m_statusMap->contains(absFile))
|
else if (m_statusMap->contains(absFile))
|
||||||
@@ -146,13 +139,13 @@ void ClearCaseSync::syncSnapshotView(QFutureInterface<void> &future, QStringList
|
|||||||
const QString viewRoot = ClearCasePlugin::viewData().root;
|
const QString viewRoot = ClearCasePlugin::viewData().root;
|
||||||
const QDir viewRootDir(viewRoot);
|
const QDir viewRootDir(viewRoot);
|
||||||
|
|
||||||
QStringList args(QLatin1String("ls"));
|
QStringList args("ls");
|
||||||
if (hot) {
|
if (hot) {
|
||||||
files << updateStatusHotFiles(viewRoot, totalFileCount);
|
files << updateStatusHotFiles(viewRoot, totalFileCount);
|
||||||
args << files;
|
args << files;
|
||||||
} else {
|
} else {
|
||||||
invalidateStatus(viewRootDir, files);
|
invalidateStatus(viewRootDir, files);
|
||||||
args << QLatin1String("-recurse");
|
args << "-recurse";
|
||||||
|
|
||||||
QStringList vobs;
|
QStringList vobs;
|
||||||
if (!settings.indexOnlyVOBs.isEmpty())
|
if (!settings.indexOnlyVOBs.isEmpty())
|
||||||
@@ -217,11 +210,7 @@ void ClearCaseSync::syncDynamicView(QFutureInterface<void> &future,
|
|||||||
// Always invalidate status for all files
|
// Always invalidate status for all files
|
||||||
invalidateStatusAllFiles();
|
invalidateStatusAllFiles();
|
||||||
|
|
||||||
QStringList args(QLatin1String("lscheckout"));
|
QStringList args({"lscheckout", "-avobs", "-me", "-cview", "-s"});
|
||||||
args << QLatin1String("-avobs")
|
|
||||||
<< QLatin1String("-me")
|
|
||||||
<< QLatin1String("-cview")
|
|
||||||
<< QLatin1String("-s");
|
|
||||||
|
|
||||||
const QString viewRoot = ClearCasePlugin::viewData().root;
|
const QString viewRoot = ClearCasePlugin::viewData().root;
|
||||||
|
|
||||||
@@ -309,27 +298,27 @@ void ClearCaseSync::verifyParseStatus(const QString &fileName,
|
|||||||
const FileStatus::Status status)
|
const FileStatus::Status status)
|
||||||
{
|
{
|
||||||
QCOMPARE(m_statusMap->count(), 0);
|
QCOMPARE(m_statusMap->count(), 0);
|
||||||
processCleartoolLsLine(QDir(QLatin1String("/")), cleartoolLsLine);
|
processCleartoolLsLine(QDir("/"), cleartoolLsLine);
|
||||||
|
|
||||||
if (status == FileStatus::CheckedIn) {
|
if (status == FileStatus::CheckedIn) {
|
||||||
// The algorithm doesn't store checked in files in the index, unless it was there already
|
// The algorithm doesn't store checked in files in the index, unless it was there already
|
||||||
QCOMPARE(m_statusMap->count(), 0);
|
QCOMPARE(m_statusMap->count(), 0);
|
||||||
QCOMPARE(m_statusMap->contains(fileName), false);
|
QCOMPARE(m_statusMap->contains(fileName), false);
|
||||||
ClearCasePlugin::setStatus(fileName, FileStatus::Unknown, false);
|
ClearCasePlugin::setStatus(fileName, FileStatus::Unknown, false);
|
||||||
processCleartoolLsLine(QDir(QLatin1String("/")), cleartoolLsLine);
|
processCleartoolLsLine(QDir("/"), cleartoolLsLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
QCOMPARE(m_statusMap->count(), 1);
|
QCOMPARE(m_statusMap->count(), 1);
|
||||||
QCOMPARE(m_statusMap->contains(fileName), true);
|
QCOMPARE(m_statusMap->contains(fileName), true);
|
||||||
QCOMPARE(m_statusMap->value(fileName).status, status);
|
QCOMPARE(m_statusMap->value(fileName).status, status);
|
||||||
|
|
||||||
QCOMPARE(m_statusMap->contains(QLatin1String(("notexisting"))), false);
|
QCOMPARE(m_statusMap->contains("notexisting"), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClearCaseSync::verifyFileNotManaged()
|
void ClearCaseSync::verifyFileNotManaged()
|
||||||
{
|
{
|
||||||
QCOMPARE(m_statusMap->count(), 0);
|
QCOMPARE(m_statusMap->count(), 0);
|
||||||
TempFile temp(QDir::currentPath() + QLatin1String("/notmanaged.cpp"));
|
TempFile temp(QDir::currentPath() + "/notmanaged.cpp");
|
||||||
const QString fileName = temp.fileName();
|
const QString fileName = temp.fileName();
|
||||||
|
|
||||||
updateStatusForNotManagedFiles(QStringList(fileName));
|
updateStatusForNotManagedFiles(QStringList(fileName));
|
||||||
@@ -344,7 +333,7 @@ void ClearCaseSync::verifyFileCheckedOutDynamicView()
|
|||||||
{
|
{
|
||||||
QCOMPARE(m_statusMap->count(), 0);
|
QCOMPARE(m_statusMap->count(), 0);
|
||||||
|
|
||||||
QString fileName(QLatin1String("/hello.C"));
|
QString fileName("/hello.C");
|
||||||
processCleartoolLscheckoutLine(fileName);
|
processCleartoolLscheckoutLine(fileName);
|
||||||
|
|
||||||
QCOMPARE(m_statusMap->count(), 1);
|
QCOMPARE(m_statusMap->count(), 1);
|
||||||
@@ -352,14 +341,14 @@ void ClearCaseSync::verifyFileCheckedOutDynamicView()
|
|||||||
QVERIFY(m_statusMap->contains(fileName));
|
QVERIFY(m_statusMap->contains(fileName));
|
||||||
QCOMPARE(m_statusMap->value(fileName).status, FileStatus::CheckedOut);
|
QCOMPARE(m_statusMap->value(fileName).status, FileStatus::CheckedOut);
|
||||||
|
|
||||||
QVERIFY(!m_statusMap->contains(QLatin1String(("notexisting"))));
|
QVERIFY(!m_statusMap->contains("notexisting"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClearCaseSync::verifyFileCheckedInDynamicView()
|
void ClearCaseSync::verifyFileCheckedInDynamicView()
|
||||||
{
|
{
|
||||||
QCOMPARE(m_statusMap->count(), 0);
|
QCOMPARE(m_statusMap->count(), 0);
|
||||||
|
|
||||||
QString fileName(QLatin1String("/hello.C"));
|
QString fileName("/hello.C");
|
||||||
|
|
||||||
// checked in files are not kept in the index
|
// checked in files are not kept in the index
|
||||||
QCOMPARE(m_statusMap->count(), 0);
|
QCOMPARE(m_statusMap->count(), 0);
|
||||||
@@ -369,7 +358,7 @@ void ClearCaseSync::verifyFileCheckedInDynamicView()
|
|||||||
void ClearCaseSync::verifyFileNotManagedDynamicView()
|
void ClearCaseSync::verifyFileNotManagedDynamicView()
|
||||||
{
|
{
|
||||||
QCOMPARE(m_statusMap->count(), 0);
|
QCOMPARE(m_statusMap->count(), 0);
|
||||||
TempFile temp(QDir::currentPath() + QLatin1String("/notmanaged.cpp"));
|
TempFile temp(QDir::currentPath() + "/notmanaged.cpp");
|
||||||
const QString fileName = temp.fileName();
|
const QString fileName = temp.fileName();
|
||||||
|
|
||||||
updateStatusForNotManagedFiles(QStringList(fileName));
|
updateStatusForNotManagedFiles(QStringList(fileName));
|
||||||
|
Reference in New Issue
Block a user