VCS[Mercurial]: Implement annotate previous as for git.

Task-number:   QTCREATORBUG-503
This commit is contained in:
Friedemann Kleint
2010-01-08 09:44:07 +01:00
parent e8195c0766
commit da6463ee2f
6 changed files with 173 additions and 33 deletions

View File

@@ -31,6 +31,7 @@
#include "annotationhighlighter.h"
#include "constants.h"
#include "mercurialplugin.h"
#include "mercurialclient.h"
#include <coreplugin/editormanager/editormanager.h>
#include <vcsbase/diffhighlighter.h>
@@ -53,6 +54,7 @@ MercurialEditor::MercurialEditor(const VCSBase::VCSBaseEditorParameters *type, Q
changesetIdentifier40(QLatin1String(Constants::CHANGESETID40)),
diffIdentifier(QLatin1String(Constants::DIFFIDENTIFIER))
{
setAnnotateRevisionTextFormat(tr("Annotate %1"));
}
QSet<QString> MercurialEditor::annotationChanges() const
@@ -110,3 +112,21 @@ QString MercurialEditor::fileNameFromDiffSpecification(const QTextBlock &diffFil
}
return QString();
}
QStringList MercurialEditor::annotationPreviousVersions(const QString &revision) const
{
MercurialClient *client = MercurialPlugin::instance()->client();
QStringList parents;
const QFileInfo fi(source());
const QString workingDirectory = fi.absolutePath();
// Retrieve parent revisions
QStringList revisions;
if (!client->parentRevisionsSync(workingDirectory, fi.fileName(), revision, &revisions))
return QStringList();
// Format with short summary
QStringList descriptions;
if (!client->shortDescriptionsSync(workingDirectory, revisions, &descriptions))
return QStringList();
return descriptions;
}