diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 9ec9d92a9f8..482e4430d22 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -3027,6 +3027,16 @@ QString GitClient::gitBinaryPath(bool *ok, QString *errorMessage) const return settings()->gitBinaryPath(ok, errorMessage); } +QString GitClient::commitEncoding(const QString &workingDirectory) +{ + QString encoding = readConfigValue(workingDirectory, QLatin1String("i18n.commitEncoding")); + if (!encoding.isEmpty()) + return encoding; + // Set default commit encoding to 'UTF-8', when it's not set, + // to solve displaying error of commit log with non-latin characters. + return QLatin1String("UTF-8"); +} + bool GitClient::getCommitData(const QString &workingDirectory, QString *commitTemplate, CommitData &commitData, @@ -3106,12 +3116,7 @@ bool GitClient::getCommitData(const QString &workingDirectory, } } - commitData.commitEncoding = readConfigValue(workingDirectory, QLatin1String("i18n.commitEncoding")); - - // Set default commit encoding to 'UTF-8', when it's not set, - // to solve displaying error of commit log with non-latin characters. - if (commitData.commitEncoding.isEmpty()) - commitData.commitEncoding = QLatin1String("UTF-8"); + commitData.commitEncoding = commitEncoding(workingDirectory); // Get the commit template or the last commit message switch (commitData.commitType) { diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 5ca5424225a..e110140641d 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -285,6 +285,7 @@ public: QString readConfigValue(const QString &workingDirectory, const QString &configVar) const; + QString commitEncoding(const QString &workingDirectory); bool getCommitData(const QString &workingDirectory, QString *commitTemplate, CommitData &commitData, QString *errorMessage);