From 331af07a9e95ad6b3ad6a181a027b2817b0c9693 Mon Sep 17 00:00:00 2001
From: Petar Perisin <petar.perisin@gmail.com>
Date: Tue, 9 Apr 2013 19:45:32 +0200
Subject: [PATCH] Git: bug fix for diff and log in BranchesDialog

Branch log and diff were sometimes having problems.
I have project in main git module, and I was not able to get branch diff and log in a submodule,
because they open new editor and as soon as it is opened m_repository changes to the master module.
Since repository working dir is set after editor opens, it is already changed in branchModel
Branch diff and log should now work as expected.

Change-Id: I72f730d77b8fe23ef6eac757415fe96321ef147b
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
---
 src/plugins/git/branchdialog.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp
index 99d315dd003..453b9df1ef8 100644
--- a/src/plugins/git/branchdialog.cpp
+++ b/src/plugins/git/branchdialog.cpp
@@ -267,7 +267,8 @@ void BranchDialog::diff()
     QString branchName = m_model->branchName(selectedIndex());
     if (branchName.isEmpty())
         return;
-    GitPlugin::instance()->gitClient()->diffBranch(m_repository, QStringList(), branchName);
+    // Do not pass working dir by reference since it might change
+    GitPlugin::instance()->gitClient()->diffBranch(QString(m_repository), QStringList(), branchName);
 }
 
 void BranchDialog::log()
@@ -275,7 +276,8 @@ void BranchDialog::log()
     QString branchName = m_model->branchName(selectedIndex());
     if (branchName.isEmpty())
         return;
-    GitPlugin::instance()->gitClient()->graphLog(m_repository, branchName);
+    // Do not pass working dir by reference since it might change
+    GitPlugin::instance()->gitClient()->graphLog(QString(m_repository), branchName);
 }
 
 void BranchDialog::merge()
-- 
GitLab