[QGIT PATCH] Add safeguards to Git::userInfo()
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