From 827367ebe1d5a093037da024ac4e8f81db8e1549 Mon Sep 17 00:00:00 2001
From: Nate DeSimone <nathaniel.l.desimone@intel.com>
Date: Fri, 6 Dec 2019 09:58:41 -0800
Subject: [PATCH] BaseTools/Scripts: Add sendemail.transferEncoding to SetupGit.py

If git finds a '\r' character in the message, then it
converts the entire message content into Quoted-Printable
encoding. It appears that when groups.io converts the QP
encoding back to text format, the '\r' characters somehow
become '\n'. To workaround this, the SetupGit.py script
will now explicitly set the sendemail.transferEncoding git
config option to '8bit'

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
---
 BaseTools/Scripts/SetupGit.py | 38 ++++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 18 deletions(-)

diff --git a/BaseTools/Scripts/SetupGit.py b/BaseTools/Scripts/SetupGit.py
index 3d39d3b35f..514f1c4d42 100644
--- a/BaseTools/Scripts/SetupGit.py
+++ b/BaseTools/Scripts/SetupGit.py
@@ -2,6 +2,7 @@
 #  Set up the git configuration for contributing to TianoCore projects
 #
 #  Copyright (c) 2019, Linaro Ltd. All rights reserved.<BR>
+#  Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
 #
 #  SPDX-License-Identifier: BSD-2-Clause-Patent
 #
@@ -53,29 +54,30 @@ MIN_GIT_VERSION = (1, 9, 0)
 
 # Set of options to be set identically for all repositories
 OPTIONS = [
-    {'section': 'am',          'option': 'keepcr',         'value': True},
-    {'section': 'am',          'option': 'signoff',        'value': True},
-    {'section': 'cherry-pick', 'option': 'signoff',        'value': True},
-    {'section': 'color',       'option': 'diff',           'value': True},
-    {'section': 'color',       'option': 'grep',           'value': 'auto'},
-    {'section': 'commit',      'option': 'signoff',        'value': True},
-    {'section': 'core',        'option': 'abbrev',         'value': 12},
+    {'section': 'am',          'option': 'keepcr',            'value': True},
+    {'section': 'am',          'option': 'signoff',           'value': True},
+    {'section': 'cherry-pick', 'option': 'signoff',           'value': True},
+    {'section': 'color',       'option': 'diff',              'value': True},
+    {'section': 'color',       'option': 'grep',              'value': 'auto'},
+    {'section': 'commit',      'option': 'signoff',           'value': True},
+    {'section': 'core',        'option': 'abbrev',            'value': 12},
     {'section': 'core',        'option': 'attributesFile',
      'value': os.path.join(CONFDIR, 'gitattributes').replace('\\', '/')},
-    {'section': 'core',        'option': 'whitespace',     'value': 'cr-at-eol'},
-    {'section': 'diff',        'option': 'algorithm',      'value': 'patience'},
+    {'section': 'core',        'option': 'whitespace',        'value': 'cr-at-eol'},
+    {'section': 'diff',        'option': 'algorithm',         'value': 'patience'},
     {'section': 'diff',        'option': 'orderFile',
      'value': os.path.join(CONFDIR, 'diff.order').replace('\\', '/')},
-    {'section': 'diff',        'option': 'renames',        'value': 'copies'},
-    {'section': 'diff',        'option': 'statGraphWidth', 'value': '20'},
-    {'section': 'diff "ini"',    'option': 'xfuncname',
+    {'section': 'diff',        'option': 'renames',           'value': 'copies'},
+    {'section': 'diff',        'option': 'statGraphWidth',    'value': '20'},
+    {'section': 'diff "ini"',  'option': 'xfuncname',
      'value': '^\\\\[[A-Za-z0-9_., ]+]'},
-    {'section': 'format',      'option': 'coverLetter',    'value': True},
-    {'section': 'format',      'option': 'numbered',       'value': True},
-    {'section': 'format',      'option': 'signoff',        'value': False},
-    {'section': 'notes',       'option': 'rewriteRef',     'value': 'refs/notes/commits'},
-    {'section': 'sendemail',   'option': 'chainreplyto',   'value': False},
-    {'section': 'sendemail',   'option': 'thread',         'value': True},
+    {'section': 'format',      'option': 'coverLetter',       'value': True},
+    {'section': 'format',      'option': 'numbered',          'value': True},
+    {'section': 'format',      'option': 'signoff',           'value': False},
+    {'section': 'notes',       'option': 'rewriteRef',        'value': 'refs/notes/commits'},
+    {'section': 'sendemail',   'option': 'chainreplyto',      'value': False},
+    {'section': 'sendemail',   'option': 'thread',            'value': True},
+    {'section': 'sendemail',   'option': 'transferEncoding',  'value': '8bit'},
     ]
 
 
-- 
2.24.0.windows.2

