forked from qt-creator/qt-creator
Git: Do not display invalid commit as blame candidate
Change-Id: Ia08775b2e4364f405d223a9b49971ae70c04965a Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
This commit is contained in:
committed by
Tobias Hunger
parent
16a813694f
commit
12a99d476c
@@ -1040,9 +1040,8 @@ bool GitClient::synchronousParentRevisions(const QString &workingDirectory,
|
|||||||
QByteArray outputTextData;
|
QByteArray outputTextData;
|
||||||
QByteArray errorText;
|
QByteArray errorText;
|
||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
if (parents && (revision == QLatin1String("00000000"))) { // Not Committed Yet
|
if (parents && !isValidRevision(revision)) { // Not Committed Yet
|
||||||
parents->clear();
|
*parents = QStringList(QLatin1String("HEAD"));
|
||||||
parents->append(QLatin1String("HEAD"));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
arguments << QLatin1String("rev-list") << QLatin1String(GitClient::noColorOption)
|
arguments << QLatin1String("rev-list") << QLatin1String(GitClient::noColorOption)
|
||||||
@@ -1450,6 +1449,16 @@ QProcessEnvironment GitClient::processEnvironment() const
|
|||||||
return environment;
|
return environment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GitClient::isValidRevision(const QString &revision) const
|
||||||
|
{
|
||||||
|
if (revision.length() < 1)
|
||||||
|
return false;
|
||||||
|
for (int i = 0; i < revision.length(); ++i)
|
||||||
|
if (revision.at(i) != QLatin1Char('0'))
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Synchronous git execution using Utils::SynchronousProcess, with
|
// Synchronous git execution using Utils::SynchronousProcess, with
|
||||||
// log windows updating.
|
// log windows updating.
|
||||||
Utils::SynchronousProcessResponse GitClient::synchronousGit(const QString &workingDirectory,
|
Utils::SynchronousProcessResponse GitClient::synchronousGit(const QString &workingDirectory,
|
||||||
|
@@ -220,6 +220,8 @@ public:
|
|||||||
|
|
||||||
QProcessEnvironment processEnvironment() const;
|
QProcessEnvironment processEnvironment() const;
|
||||||
|
|
||||||
|
bool isValidRevision(const QString &revision) const;
|
||||||
|
|
||||||
static QString msgNoChangedFiles();
|
static QString msgNoChangedFiles();
|
||||||
|
|
||||||
static const char *noColorOption;
|
static const char *noColorOption;
|
||||||
|
@@ -250,6 +250,11 @@ QStringList GitEditor::annotationPreviousVersions(const QString &revision) const
|
|||||||
return revisions;
|
return revisions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GitEditor::isValidRevision(const QString &revision) const
|
||||||
|
{
|
||||||
|
return GitPlugin::instance()->gitClient()->isValidRevision(revision);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
} // namespace Git
|
} // namespace Git
|
||||||
|
|
||||||
|
@@ -63,6 +63,7 @@ private:
|
|||||||
virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const;
|
virtual QString fileNameFromDiffSpecification(const QTextBlock &diffFileName) const;
|
||||||
virtual QString decorateVersion(const QString &revision) const;
|
virtual QString decorateVersion(const QString &revision) const;
|
||||||
virtual QStringList annotationPreviousVersions(const QString &revision) const;
|
virtual QStringList annotationPreviousVersions(const QString &revision) const;
|
||||||
|
virtual bool isValidRevision(const QString &revision) const;
|
||||||
|
|
||||||
mutable QRegExp m_changeNumberPattern8;
|
mutable QRegExp m_changeNumberPattern8;
|
||||||
mutable QRegExp m_changeNumberPattern40;
|
mutable QRegExp m_changeNumberPattern40;
|
||||||
|
@@ -351,7 +351,8 @@ void ChangeTextCursorHandler::fillContextMenu(QMenu *menu, EditorContentType typ
|
|||||||
menu->addAction(createCopyRevisionAction(m_currentChange));
|
menu->addAction(createCopyRevisionAction(m_currentChange));
|
||||||
menu->addAction(createDescribeAction(m_currentChange));
|
menu->addAction(createDescribeAction(m_currentChange));
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
menu->addAction(createAnnotateAction(editorWidget()->decorateVersion(m_currentChange), false));
|
if (editorWidget()->isValidRevision(m_currentChange))
|
||||||
|
menu->addAction(createAnnotateAction(editorWidget()->decorateVersion(m_currentChange), false));
|
||||||
const QStringList previousVersions = editorWidget()->annotationPreviousVersions(m_currentChange);
|
const QStringList previousVersions = editorWidget()->annotationPreviousVersions(m_currentChange);
|
||||||
if (!previousVersions.isEmpty()) {
|
if (!previousVersions.isEmpty()) {
|
||||||
foreach (const QString &pv, previousVersions)
|
foreach (const QString &pv, previousVersions)
|
||||||
@@ -1428,6 +1429,12 @@ QString VcsBaseEditorWidget::decorateVersion(const QString &revision) const
|
|||||||
return revision;
|
return revision;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool VcsBaseEditorWidget::isValidRevision(const QString &revision) const
|
||||||
|
{
|
||||||
|
Q_UNUSED(revision);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void VcsBaseEditorWidget::slotApplyDiffChunk()
|
void VcsBaseEditorWidget::slotApplyDiffChunk()
|
||||||
{
|
{
|
||||||
const QAction *a = qobject_cast<QAction *>(sender());
|
const QAction *a = qobject_cast<QAction *>(sender());
|
||||||
|
@@ -252,6 +252,8 @@ private:
|
|||||||
// Implement to return the previous version[s] of an annotation change
|
// Implement to return the previous version[s] of an annotation change
|
||||||
// for "Annotate previous version"
|
// for "Annotate previous version"
|
||||||
virtual QStringList annotationPreviousVersions(const QString &revision) const;
|
virtual QStringList annotationPreviousVersions(const QString &revision) const;
|
||||||
|
// Implement to validate revisions
|
||||||
|
virtual bool isValidRevision(const QString &revision) const;
|
||||||
// cut out chunk and determine file name.
|
// cut out chunk and determine file name.
|
||||||
DiffChunk diffChunk(QTextCursor cursor) const;
|
DiffChunk diffChunk(QTextCursor cursor) const;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user