sysmon: Fix handling git diff-index outputting dashes
BUG=chromium:736911
BUG=chromium:737146
BUG=chromium:737217
TEST=Run on backup cautotest
Change-Id: Icd566e5ef49e43233b0415508b7542b0b4464e10
Reviewed-on: https://chromium-review.googlesource.com/550560
Commit-Queue: Allen Li <ayatane@chromium.org>
Tested-by: Allen Li <ayatane@chromium.org>
Trybot-Ready: Allen Li <ayatane@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
diff --git a/scripts/sysmon/git_metrics.py b/scripts/sysmon/git_metrics.py
index ee7cca3..46ee62f9 100644
--- a/scripts/sysmon/git_metrics.py
+++ b/scripts/sysmon/git_metrics.py
@@ -7,7 +7,6 @@
from __future__ import absolute_import
from __future__ import print_function
-import collections
import os
import subprocess
@@ -17,9 +16,6 @@
logger = logging.getLogger(__name__)
-_Stats = collections.namedtuple('_Stats', 'added,deleted,path')
-
-
class _GitRepo(object):
"""Helper class for running git commands."""
@@ -44,16 +40,18 @@
def get_unstaged_changes(self):
"""Return number of unstaged changes as (added, deleted)."""
- added, deleted = 0, 0
- # output looks like '1\t2\tfoo\n3\t4\tbar\n'
+ added_total, deleted_total = 0, 0
+ # output looks like:
+ # '1\t2\tfoo\n3\t4\tbar\n'
+ # '-\t-\tbinary_file\n'
output = self._check_output(['diff-index', '--numstat', 'HEAD'])
stats_strings = (line.split() for line in output.splitlines())
- stats_iter = (_Stats(int(added), int(deleted), path)
- for added, deleted, path in stats_strings)
- for stats in stats_iter:
- added += stats.added
- deleted += stats.deleted
- return added, deleted
+ for added, deleted, _path in stats_strings:
+ if added != '-':
+ added_total += int(added)
+ if deleted != '-':
+ deleted_total += int(deleted)
+ return added_total, deleted_total
class _GitMetricCollector(object):