presubmit_support: Call git once per change, to get a diff for all files. Parse this result to generate per-file diffs, which go into a cache that's shared between the AffectedFile instances.

Greatly improves presubmit performance on Blink where there may be rule violations (my test case went from 50s to 5s).

BUG=236206
TEST=new test in presubmit_unittest.py; manual performance test on Mac and Windows after touching hundreds of files in webkit; testing included add/move/edit/delete on both binary and text files.

Review URL: https://chromiumcodereview.appspot.com/15898005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@205275 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/patch.py b/patch.py
index cd594f8..9b65ce1 100644
--- a/patch.py
+++ b/patch.py
@@ -318,7 +318,7 @@
 
     Expects the following format:
 
-    <garbagge>
+    <garbage>
     diff --git (|a/)<filename> (|b/)<filename>
     <similarity>
     <filemode changes>