Git: Suppress stderr output for fully synchronous executions

Broken by dcdcf54048.

Change-Id: I32f56bb432dfd3ce26397fd41908c6823cd4d7f1
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Orgad Shaneh
2015-04-14 22:26:38 +03:00
committed by Orgad Shaneh
parent a79df8e1e7
commit ec2d13641b
2 changed files with 19 additions and 26 deletions

View File

@@ -102,6 +102,9 @@ static unsigned diffExecutionFlags()
return HostOsInfo::isWindowsHost() ? unsigned(VcsBasePlugin::SuppressStdErrInLogWindow) : 0u; return HostOsInfo::isWindowsHost() ? unsigned(VcsBasePlugin::SuppressStdErrInLogWindow) : 0u;
} }
const unsigned silentFlags = unsigned(VcsBasePlugin::SuppressCommandLogging
| VcsBasePlugin::SuppressStdErrInLogWindow);
///////////////////////////////////// /////////////////////////////////////
class BaseController : public DiffEditorController class BaseController : public DiffEditorController
@@ -629,8 +632,7 @@ bool GitClient::managesFile(const QString &workingDirectory, const QString &file
QByteArray output; QByteArray output;
QStringList arguments; QStringList arguments;
arguments << QLatin1String("ls-files") << QLatin1String("--error-unmatch") << fileName; arguments << QLatin1String("ls-files") << QLatin1String("--error-unmatch") << fileName;
return vcsFullySynchronousExec(workingDirectory, arguments, &output, 0, return vcsFullySynchronousExec(workingDirectory, arguments, &output, 0, silentFlags);
VcsBasePlugin::SuppressCommandLogging);
} }
QTextCodec *GitClient::codecFor(GitClient::CodecType codecType, const QString &source) const QTextCodec *GitClient::codecFor(GitClient::CodecType codecType, const QString &source) const
@@ -1234,7 +1236,7 @@ bool GitClient::synchronousRevListCmd(const QString &workingDirectory, const QSt
args << QLatin1String(noColorOption) << arguments; args << QLatin1String(noColorOption) << arguments;
const bool rc = vcsFullySynchronousExec(workingDirectory, args, &outputTextData, &errorText, const bool rc = vcsFullySynchronousExec(workingDirectory, args, &outputTextData, &errorText,
VcsBasePlugin::SuppressCommandLogging); silentFlags);
if (!rc) { if (!rc) {
msgCannotRun(args, workingDirectory, errorText, errorMessage); msgCannotRun(args, workingDirectory, errorText, errorMessage);
return false; return false;
@@ -1302,8 +1304,7 @@ QString GitClient::synchronousCurrentLocalBranch(const QString &workingDirectory
QByteArray outputTextData; QByteArray outputTextData;
QStringList arguments; QStringList arguments;
arguments << QLatin1String("symbolic-ref") << QLatin1String(HEAD); arguments << QLatin1String("symbolic-ref") << QLatin1String(HEAD);
if (vcsFullySynchronousExec(workingDirectory, arguments, &outputTextData, 0, if (vcsFullySynchronousExec(workingDirectory, arguments, &outputTextData, 0, silentFlags)) {
VcsBasePlugin::SuppressCommandLogging)) {
QString branch = commandOutputFromLocal8Bit(outputTextData.trimmed()); QString branch = commandOutputFromLocal8Bit(outputTextData.trimmed());
const QString refsHeadsPrefix = QLatin1String("refs/heads/"); const QString refsHeadsPrefix = QLatin1String("refs/heads/");
if (branch.startsWith(refsHeadsPrefix)) { if (branch.startsWith(refsHeadsPrefix)) {
@@ -1323,7 +1324,7 @@ bool GitClient::synchronousHeadRefs(const QString &workingDirectory, QStringList
QByteArray outputText; QByteArray outputText;
QByteArray errorText; QByteArray errorText;
const bool rc = vcsFullySynchronousExec(workingDirectory, args, &outputText, &errorText, const bool rc = vcsFullySynchronousExec(workingDirectory, args, &outputText, &errorText,
VcsBasePlugin::SuppressCommandLogging); silentFlags);
if (!rc) { if (!rc) {
msgCannotRun(args, workingDirectory, errorText, errorMessage); msgCannotRun(args, workingDirectory, errorText, errorMessage);
return false; return false;
@@ -1396,7 +1397,7 @@ bool GitClient::synchronousRevParseCmd(const QString &workingDirectory, const QS
QByteArray outputText; QByteArray outputText;
QByteArray errorText; QByteArray errorText;
const bool rc = vcsFullySynchronousExec(workingDirectory, arguments, &outputText, &errorText, const bool rc = vcsFullySynchronousExec(workingDirectory, arguments, &outputText, &errorText,
VcsBasePlugin::SuppressCommandLogging); silentFlags);
*output = commandOutputFromLocal8Bit(outputText.trimmed()); *output = commandOutputFromLocal8Bit(outputText.trimmed());
if (!rc) if (!rc)
msgCannotRun(arguments, workingDirectory, errorText, errorMessage); msgCannotRun(arguments, workingDirectory, errorText, errorMessage);
@@ -1420,8 +1421,7 @@ void GitClient::synchronousTagsForCommit(const QString &workingDirectory, const
QByteArray pr; QByteArray pr;
QStringList arguments; QStringList arguments;
arguments << QLatin1String("describe") << QLatin1String("--contains") << revision; arguments << QLatin1String("describe") << QLatin1String("--contains") << revision;
vcsFullySynchronousExec(workingDirectory, arguments, &pr, 0, vcsFullySynchronousExec(workingDirectory, arguments, &pr, 0, silentFlags);
VcsBasePlugin::SuppressCommandLogging);
int tilde = pr.indexOf('~'); int tilde = pr.indexOf('~');
if (tilde != -1) if (tilde != -1)
pr.truncate(tilde); pr.truncate(tilde);
@@ -1437,8 +1437,7 @@ void GitClient::synchronousTagsForCommit(const QString &workingDirectory, const
arguments.clear(); arguments.clear();
arguments << QLatin1String("describe") << QLatin1String("--tags") arguments << QLatin1String("describe") << QLatin1String("--tags")
<< QLatin1String("--abbrev=0") << p; << QLatin1String("--abbrev=0") << p;
vcsFullySynchronousExec(workingDirectory, arguments, &pf, 0, vcsFullySynchronousExec(workingDirectory, arguments, &pf, 0, silentFlags);
VcsBasePlugin::SuppressCommandLogging);
pf.truncate(pf.lastIndexOf('\n')); pf.truncate(pf.lastIndexOf('\n'));
if (!pf.isEmpty()) { if (!pf.isEmpty()) {
if (!follows.isEmpty()) if (!follows.isEmpty())
@@ -1467,8 +1466,7 @@ bool GitClient::isRemoteCommit(const QString &workingDirectory, const QString &c
QByteArray outputText; QByteArray outputText;
arguments << QLatin1String("branch") << QLatin1String("-r") arguments << QLatin1String("branch") << QLatin1String("-r")
<< QLatin1String("--contains") << commit; << QLatin1String("--contains") << commit;
vcsFullySynchronousExec(workingDirectory, arguments, &outputText, 0, vcsFullySynchronousExec(workingDirectory, arguments, &outputText, 0, silentFlags);
VcsBasePlugin::SuppressCommandLogging);
return !outputText.isEmpty(); return !outputText.isEmpty();
} }
@@ -1477,8 +1475,7 @@ bool GitClient::isFastForwardMerge(const QString &workingDirectory, const QStrin
QStringList arguments; QStringList arguments;
QByteArray outputText; QByteArray outputText;
arguments << QLatin1String("merge-base") << QLatin1String(HEAD) << branch; arguments << QLatin1String("merge-base") << QLatin1String(HEAD) << branch;
vcsFullySynchronousExec(workingDirectory, arguments, &outputText, 0, vcsFullySynchronousExec(workingDirectory, arguments, &outputText, 0, silentFlags);
VcsBasePlugin::SuppressCommandLogging);
return commandOutputFromLocal8Bit(outputText).trimmed() return commandOutputFromLocal8Bit(outputText).trimmed()
== synchronousTopRevision(workingDirectory); == synchronousTopRevision(workingDirectory);
} }
@@ -1650,7 +1647,7 @@ bool GitClient::synchronousForEachRefCmd(const QString &workingDirectory, QStrin
QByteArray outputText; QByteArray outputText;
QByteArray errorText; QByteArray errorText;
const bool rc = vcsFullySynchronousExec(workingDirectory, args, &outputText, &errorText, const bool rc = vcsFullySynchronousExec(workingDirectory, args, &outputText, &errorText,
VcsBasePlugin::SuppressCommandLogging); silentFlags);
*output = SynchronousProcess::normalizeNewlines(QString::fromUtf8(outputText)); *output = SynchronousProcess::normalizeNewlines(QString::fromUtf8(outputText));
if (!rc) if (!rc)
msgCannotRun(args, workingDirectory, errorText, errorMessage); msgCannotRun(args, workingDirectory, errorText, errorMessage);
@@ -1665,7 +1662,7 @@ bool GitClient::synchronousRemoteCmd(const QString &workingDirectory, QStringLis
QByteArray outputText; QByteArray outputText;
QByteArray errorText; QByteArray errorText;
if (!vcsFullySynchronousExec(workingDirectory, remoteArgs, &outputText, &errorText, if (!vcsFullySynchronousExec(workingDirectory, remoteArgs, &outputText, &errorText,
silent ? VcsBasePlugin::SuppressCommandLogging : 0)) { silent ? silentFlags : 0)) {
msgCannotRun(remoteArgs, workingDirectory, errorText, errorMessage); msgCannotRun(remoteArgs, workingDirectory, errorText, errorMessage);
return false; return false;
} }
@@ -1987,8 +1984,7 @@ GitClient::StatusResult GitClient::gitStatus(const QString &workingDirectory, St
statusArgs << QLatin1String("--porcelain") << QLatin1String("-b"); statusArgs << QLatin1String("--porcelain") << QLatin1String("-b");
const bool statusRc = vcsFullySynchronousExec(workingDirectory, statusArgs, const bool statusRc = vcsFullySynchronousExec(workingDirectory, statusArgs,
&outputText, &errorText, &outputText, &errorText, silentFlags);
VcsBasePlugin::SuppressCommandLogging);
if (output) if (output)
*output = commandOutputFromLocal8Bit(outputText); *output = commandOutputFromLocal8Bit(outputText);
@@ -2337,8 +2333,7 @@ bool GitClient::readDataFromCommit(const QString &repoDirectory, const QString &
args << QLatin1String("--max-count=1") << QLatin1String("--pretty=format:%h\n%an\n%ae\n%B"); args << QLatin1String("--max-count=1") << QLatin1String("--pretty=format:%h\n%an\n%ae\n%B");
args << commit; args << commit;
QByteArray outputText; QByteArray outputText;
if (!vcsFullySynchronousExec(repoDirectory, args, &outputText, 0, if (!vcsFullySynchronousExec(repoDirectory, args, &outputText, 0, silentFlags)) {
VcsBasePlugin::SuppressCommandLogging)) {
if (errorMessage) if (errorMessage)
*errorMessage = tr("Cannot retrieve last commit data of repository \"%1\".").arg(repoDirectory); *errorMessage = tr("Cannot retrieve last commit data of repository \"%1\".").arg(repoDirectory);
return false; return false;
@@ -3067,8 +3062,7 @@ QString GitClient::readConfigValue(const QString &workingDirectory, const QStrin
arguments << QLatin1String("config") << configVar; arguments << QLatin1String("config") << configVar;
QByteArray outputText; QByteArray outputText;
if (!vcsFullySynchronousExec(workingDirectory, arguments, &outputText, 0, if (!vcsFullySynchronousExec(workingDirectory, arguments, &outputText, 0, silentFlags))
VcsBasePlugin::SuppressCommandLogging))
return QString(); return QString();
if (HostOsInfo::isWindowsHost()) if (HostOsInfo::isWindowsHost())
outputText.replace("\r\n", "\n"); outputText.replace("\r\n", "\n");
@@ -3148,8 +3142,7 @@ unsigned GitClient::synchronousGitVersion(QString *errorMessage) const
QByteArray outputText; QByteArray outputText;
QByteArray errorText; QByteArray errorText;
const bool rc = vcsFullySynchronousExec(QString(), QStringList(QLatin1String("--version")), const bool rc = vcsFullySynchronousExec(QString(), QStringList(QLatin1String("--version")),
&outputText, &errorText, &outputText, &errorText, silentFlags);
VcsBasePlugin::SuppressCommandLogging);
if (!rc) { if (!rc) {
msgCannotRun(tr("Cannot determine Git version: %1") msgCannotRun(tr("Cannot determine Git version: %1")
.arg(commandOutputFromLocal8Bit(errorText)), .arg(commandOutputFromLocal8Bit(errorText)),

View File

@@ -211,7 +211,7 @@ bool VcsBaseClientImpl::vcsFullySynchronousExec(const QString &workingDir, const
command->addFlags(flags); command->addFlags(flags);
bool result = command->runFullySynchronous(args, vcsTimeoutS(), outputData, bool result = command->runFullySynchronous(args, vcsTimeoutS(), outputData,
errorData ? errorData : &internalErrorData); errorData ? errorData : &internalErrorData);
if (!internalErrorData.isEmpty()) if (!internalErrorData.isEmpty() && !(flags & VcsBasePlugin::SuppressStdErrInLogWindow))
VcsOutputWindow::appendError(commandOutputFromLocal8Bit(internalErrorData)); VcsOutputWindow::appendError(commandOutputFromLocal8Bit(internalErrorData));
return result; return result;
} }