Sync to latest trace-viewer

bug:20761637

Cherry-pick of 26c92f4cb78a275f1ebb94dd976f37bdd7d53ce7 from AOSP

Change-Id: I645b485ff2643b6efbec1fa25de6fc81a98c3ee5
diff --git a/trace-viewer/hooks/pre_commit.py b/trace-viewer/hooks/pre_commit.py
index f73f306..6c92d5a 100644
--- a/trace-viewer/hooks/pre_commit.py
+++ b/trace-viewer/hooks/pre_commit.py
@@ -74,15 +74,17 @@
     return self._cached_changed_contents[:]
 
   def GenerateDiff(self):
-    return self._input_api._git(['diff', '--cached', self.filename])
+    return self._input_api._git([
+        'diff', self._input_api.diff_base, '--cached', self.filename])
 
 
 class InputAPI(object):
-  def __init__(self, tvp):
+  def __init__(self, tvp, diff_base):
     self.DEFAULT_BLACK_LIST = []
     self._tvp = tvp
     self._filename_statuses = None
     self._added_files = None
+    self.diff_base = diff_base
 
   def _git(self, args):
     assert isinstance(args, list)
@@ -131,7 +133,8 @@
       return self._filename_statuses
 
     self._filename_statuses = []
-    stdout = self._git(['diff', '--cached', '--name-status'])
+    stdout = self._git([
+        'diff', self.diff_base, '--cached', '--name-status'])
     for line in stdout.split('\n'):
       line = line.strip()
       if len(line) == 0:
@@ -146,6 +149,10 @@
       self._filename_statuses.append((filename, status_char))
     return self._filename_statuses
 
+  def IsTestDataFile(self, affected_file):
+    full_path = os.path.join(self.repository_root, affected_file.filename)
+    return full_path.startswith(self._tvp.test_data_path)
+
 
 def RunChecks(input_api):
   results = []
@@ -174,10 +181,14 @@
   return results
 
 
-def Main(args):
+def GetResults(diff_base):
   tvp = trace_viewer_project.TraceViewerProject()
-  input_api = InputAPI(tvp)
-  results = RunChecks(input_api)
+  input_api = InputAPI(tvp, diff_base)
+  return RunChecks(input_api)
+
+
+def Main(args):
+  results = GetResults('HEAD')
   print '\n\n'.join(results)
 
   if len(results):