From 1fd87607898079366084b64e9132c9ee07e63cb6 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 11 Nov 2015 12:36:12 +0200 Subject: [PATCH] Git: Do not use file name when retrieving parent commit Right-clicking a commit on blame shows the parent commit relevant for this file. In case the file was renamed, fetching the parent can fail (since the file with this name did not exist before the requested commit). Using the direct parent is good enough, and should work for all cases. What the user is really interested in is "how did the file look before this commit", and the exact "previous" commit is not really interesting. Change-Id: I7d74efce5f2b065f62e978ba5f14d3010a5f2c7f Reviewed-by: Tobias Hunger --- src/plugins/git/gitclient.cpp | 7 +------ src/plugins/git/gitclient.h | 1 - src/plugins/git/giteditor.cpp | 3 +-- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 258e8cb6c5c..79af79a2876 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -1283,7 +1283,6 @@ bool GitClient::synchronousRevListCmd(const QString &workingDirectory, const QSt // Find out the immediate parent revisions of a revision of the repository. // Might be several in case of merges. bool GitClient::synchronousParentRevisions(const QString &workingDirectory, - const QStringList &files /* = QStringList() */, const QString &revision, QStringList *parents, QString *errorMessage) const @@ -1296,10 +1295,6 @@ bool GitClient::synchronousParentRevisions(const QString &workingDirectory, return true; } arguments << QLatin1String("--parents") << QLatin1String("--max-count=1") << revision; - if (!files.isEmpty()) { - arguments.append(QLatin1String("--")); - arguments.append(files); - } if (!synchronousRevListCmd(workingDirectory, arguments, &outputText, &errorText)) { *errorMessage = msgParentRevisionFailed(workingDirectory, revision, errorText); @@ -1475,7 +1470,7 @@ void GitClient::synchronousTagsForCommit(const QString &workingDirectory, const QStringList parents; QString errorMessage; - synchronousParentRevisions(workingDirectory, QStringList(), revision, &parents, &errorMessage); + synchronousParentRevisions(workingDirectory, revision, &parents, &errorMessage); foreach (const QString &p, parents) { QByteArray pf; arguments.clear(); diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index d226c686d54..51825a768f0 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -237,7 +237,6 @@ public: QString *output, QString *errorMessage = 0) const; bool synchronousParentRevisions(const QString &workingDirectory, - const QStringList &files /* = QStringList() */, const QString &revision, QStringList *parents, QString *errorMessage) const; diff --git a/src/plugins/git/giteditor.cpp b/src/plugins/git/giteditor.cpp index 944a9ba676d..45fee1db5dd 100644 --- a/src/plugins/git/giteditor.cpp +++ b/src/plugins/git/giteditor.cpp @@ -309,8 +309,7 @@ QStringList GitEditorWidget::annotationPreviousVersions(const QString &revision) const QFileInfo fi(source()); const QString workingDirectory = fi.absolutePath(); // Get the SHA1's of the file. - if (!client->synchronousParentRevisions(workingDirectory, QStringList(fi.fileName()), - revision, &revisions, &errorMessage)) { + if (!client->synchronousParentRevisions(workingDirectory, revision, &revisions, &errorMessage)) { VcsOutputWindow::appendSilently(errorMessage); return QStringList(); }