From: Abdelrazak Younes Date: Tue, 07 Oct 2008 13:10:07 GMT Subject: [QGIT PATCH] Add safeguards to Git::userInfo() Message-ID: <48EB5FAF.4080303@lyx.org> In-Reply-To: On 07/10/2008 13:57, Marco Costalba wrote: > On Tue, Oct 7, 2008 at 1:36 PM, Abdelrazak Younes 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 + #include #include #include @@ -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