From 03ddd0e540d196f92b220a8a8c9cdc6d22cd11c9 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh <orgad.shaneh@audiocodes.com> Date: Mon, 27 Aug 2012 10:26:53 +0300 Subject: [PATCH] ClearCase: Trust lsactivity ordering for rebase/deliver activities lsactivity outputs activities sorted by creation time. Latest rebase/deliver will be last in this output, so no need to compare it to previous values. Also place rebase and deliver activities last in the activities list. Change-Id: I4c90d4210751101a5f53b6d85ff3d0e86bb28d08 Reviewed-by: Knut Petter Svendsen <knutpett@pvv.org> Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com> --- src/plugins/clearcase/clearcaseplugin.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index 26953cab715..c29f23de2ed 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -1542,31 +1542,31 @@ QList<QStringPair> ClearCasePlugin::ccGetActivities() const // Maintain latest deliver and rebase activities only QStringPair rebaseAct; QStringPair deliverAct; - QStringList args(QLatin1String("lsactivity")); // Retrieve all activities + QStringList args(QLatin1String("lsactivity")); args << QLatin1String("-fmt") << QLatin1String("%n\\t%[headline]p\\n"); const QString response = runCleartoolSync(currentState().topLevel(), args); QStringList acts = response.split(QLatin1Char('\n'), QString::SkipEmptyParts); foreach (QString activity, acts) { QStringList act = activity.split(QLatin1Char('\t')); - // exclude deliver/rebase activities (and include only the latest ones) - QRegExp deliverRebase(QLatin1String("deliver\\.|rebase\\.")); if (act.size() >= 2) { QString actName = act.at(0); - if (actName.indexOf(deliverRebase) == -1) - result.append(QStringPair(actName, act.at(1).trimmed())); - else if ((actName.at(0) == QLatin1Char('r')) && (actName > rebaseAct.first)) + // include only latest deliver/rebase activities. Activities are sorted + // by creation time + if (actName.startsWith(QLatin1String("rebase."))) rebaseAct = QStringPair(actName, act.at(1)); - else if ((actName.at(0) == QLatin1Char('d')) && (actName > deliverAct.first)) + else if (actName.startsWith(QLatin1String("deliver."))) deliverAct = QStringPair(actName, act.at(1)); + else + result.append(QStringPair(actName, act.at(1).trimmed())); } } + qSort(result); if (!rebaseAct.first.isEmpty()) result.append(rebaseAct); if (!deliverAct.first.isEmpty()) result.append(deliverAct); - qSort(result); return result; } -- GitLab