[QGIT PATCH] Add safeguards to Git::userInfo()
- From
- Abdelrazak Younes <younes@lyx.org>
- Date
- Oct 7, 2008, 13:10 UTC
- Message-ID
- <48EB5FAF.4080303@lyx.org>
- In-Reply-To
- <e5bfff550810070457i702c2935lfcc0b60ae3df4dc4@mail.gmail.com>
On 07/10/2008 13:57, Marco Costalba wrote:
Show 16 quoted lines
> On Tue, Oct 7, 2008 at 1:36 PM, Abdelrazak Younes<younes@lyx.org> wrote: > >>> Sound like a problem of startup directory: on the command line you >>> start from the right directory...when you double click on which repo >>> qgit is open ? >>> >>> >> None of course. But when I open a repository manually I would expect that >> this is properly filled in. >> >> > > In git.cpp, Git::userInfo() function get info about user by means of > 'git config' calls, my guess (I cannot it test now) is that 'git > config' does not work if we are not in a git directory. >
OK, with this patch, I see that the local config request is apparently successful even though the 'user' and 'email' strings stay empty. OTOH, the two global config requests fail.
--- src/git.cpp | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/src/git.cpp b/src/git.cpp index 4ffc4ea..e77f4a1 100755 --- a/src/git.cpp +++ b/src/git.cpp @@ -6,6 +6,8 @@ Copyright: See COPYING file that comes with this distribution */ +#include <string> + #include <QApplication> #include <QDateTime> #include <QDir> @@ -347,13 +349,16 @@ void Git::userInfo(SList info) { errorReportingEnabled = false; // 'git config' could fail, see docs - run("git config user.name", &user); - run("git config user.email", &email); - info << "Local config" << user << email; - - run("git config --global user.name", &user); - run("git config --global user.email", &email); - info << "Global config" << user << email; + if (bool success = run("git config user.name", &user)) { + success = run("git config user.email", &email); + if (success) + info << "Local config" << user << email; + } + if (bool success = run("git config --global user.name", &user)) { + success = run("git config --global user.email", &email); + if (success) + info << "Global config" << user << email; + } errorReportingEnabled = true; }
-- 1.6.0.2.1172.ga5ed0