From d301fb42e91765ae829f7021c3b26ef159cadc9a Mon Sep 17 00:00:00 2001
From: Tobias Hunger <tobias.hunger@theqtcompany.com>
Date: Fri, 7 Nov 2014 15:34:17 +0100
Subject: [PATCH] Git: Fix description of git status progress

Remove color.status option. Creator can handle ANSI now, so there
is no need to suppress that for user-visible output anymore (Git
is intelligent enough to not print colors, even if we do not explicitly
ask it not to:-)

For the internal uses of git status: Prefer using --porcelain instead
of the -s format. That is meant to be stable and does not use colors
ever.

All supported git versions (>= 1.7.2) support --porcelain.

Task-number: QTCREATORBUG-13277
Change-Id: Idd88bcba0c4e4ed68bb27fbf475fe88fae497f1c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
---
 src/plugins/git/gitclient.cpp | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index fcdfbf43ea..1b8210bdc5 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -701,12 +701,6 @@ static inline QString currentDocumentPath()
     return QString();
 }
 
-static inline QStringList statusArguments()
-{
-    return QStringList() << QLatin1String("-c") << QLatin1String("color.status=false")
-                         << QLatin1String("status");
-}
-
 static inline void msgCannotRun(const QString &message, QString *errorMessage)
 {
     if (errorMessage)
@@ -1024,8 +1018,8 @@ void GitClient::merge(const QString &workingDirectory,
 
 void GitClient::status(const QString &workingDirectory)
 {
-    QStringList statusArgs = statusArguments();
-    statusArgs << QLatin1String("-u");
+    QStringList statusArgs;
+    statusArgs << QLatin1String("status") << QLatin1String("-u");
     VcsOutputWindow::setRepository(workingDirectory);
     VcsCommand *command = executeGit(workingDirectory, statusArgs, 0, true);
     connect(command, SIGNAL(finished(bool,int,QVariant)), VcsOutputWindow::instance(), SLOT(clearRepository()),
@@ -2311,14 +2305,15 @@ GitClient::StatusResult GitClient::gitStatus(const QString &workingDirectory, St
     QByteArray outputText;
     QByteArray errorText;
 
-    QStringList statusArgs = statusArguments();
+    QStringList statusArgs;
+    statusArgs << QLatin1String("status");
     if (mode & NoUntracked)
         statusArgs << QLatin1String("--untracked-files=no");
     else
         statusArgs << QLatin1String("--untracked-files=all");
     if (mode & NoSubmodules)
         statusArgs << QLatin1String("--ignore-submodules=all");
-    statusArgs << QLatin1String("-s") << QLatin1String("-b");
+    statusArgs << QLatin1String("--porcelain") << QLatin1String("-b");
 
     const bool statusRc = fullySynchronousGit(workingDirectory, statusArgs,
                                               &outputText, &errorText, false);
-- 
GitLab