Chromium Code Reviews| Index: tools/findit/blame.py |
| diff --git a/tools/findit/blame.py b/tools/findit/blame.py |
| index 630697492e0bf6b10cd4d136d716591348581e52..adf43fc4f495d1e20c458240cd29eb0bfdbaaaeb 100644 |
| --- a/tools/findit/blame.py |
| +++ b/tools/findit/blame.py |
| @@ -28,7 +28,7 @@ class Blame(object): |
| """ |
| def __init__(self, line_content, component_name, stack_frame_index, |
| - file_name, line_number, author, revision, |
| + file_name, line_number, author, revision, message, |
| url, range_start, range_end): |
| # Set all the variables from the arguments. |
| self.line_content = line_content |
| @@ -38,6 +38,7 @@ class Blame(object): |
| self.line_number = line_number |
| self.author = author |
| self.revision = revision |
| + self.message = message |
| self.url = url |
| self.range_start = range_start |
| self.range_end = range_end |
| @@ -56,7 +57,8 @@ class BlameList(object): |
| def __getitem__(self, index): |
| return self.blame_list[index] |
| - def FindBlame(self, callstack, crash_revision_dict, regression_dict, parsers, |
| + def FindBlame(self, callstack, component_to_crash_revision_dict, |
| + component_to_regression_dict, parsers, |
| top_n_frames=10): |
| """Given a stack within a stacktrace, retrieves blame information. |
| @@ -65,10 +67,10 @@ class BlameList(object): |
| Args: |
| callstack: The list of stack frames. |
| - crash_revision_dict: A dictionary that maps component to its crash |
| - revision. |
| - regression_dict: A dictionary that maps component to its revision |
| - range. |
| + component_to_crash_revision_dict: A dictionary that maps component to its |
| + crash revision. |
| + component_to_regression_dict: A dictionary that maps component to its |
| + revision range. |
| parsers: A list of two parsers, svn_parser and git_parser |
| top_n_frames: A number of stack frames to show the blame result for. |
| """ |
| @@ -80,10 +82,11 @@ class BlameList(object): |
| # If the component this line is from does not have a crash revision, |
| # it is not possible to get blame information, so ignore this line. |
| component_path = stack_frame.component_path |
| - if component_path not in crash_revision_dict: |
| + if component_path not in component_to_crash_revision_dict: |
| continue |
| - crash_revision = crash_revision_dict[component_path]['revision'] |
| + crash_revision = component_to_crash_revision_dict[ |
| + component_path]['revision'] |
| range_start = None |
| range_end = None |
| is_git = utils.IsGitHash(crash_revision) |
| @@ -95,8 +98,9 @@ class BlameList(object): |
| # If the revision is in SVN, and if regression information is available, |
| # get it. For Git, we cannot know the ordering between hash numbers. |
| if not is_git: |
| - if regression_dict and component_path in regression_dict: |
| - component_object = regression_dict[component_path] |
| + if component_to_regression_dict and \ |
| + component_path in component_to_regression_dict: |
| + component_object = component_to_regression_dict[component_path] |
| range_start = int(component_object['old_revision']) |
| range_end = int(component_object['new_revision']) |
| @@ -120,20 +124,20 @@ class BlameList(object): |
| component_name = stack_frame.component_name |
| file_name = stack_frame.file_name |
| file_path = stack_frame.file_path |
| - crashed_line_number = stack_frame.crashed_line_number |
| + crashed_line_number = stack_frame.crashed_line_number[0] |
|
Martin Barbella
2014/08/22 02:24:13
I mention this in more detail in stacktrace.py, bu
jeun
2014/08/22 22:58:43
Done.
|
| # Parse blame information. |
| parsed_blame_info = repository_parser.ParseBlameInfo( |
| component_path, file_path, crashed_line_number, crash_revision) |
| # If it fails to retrieve information, do not do anything. |
| - if not parsed_blame_info or len(parsed_blame_info) != 4: |
| + if not parsed_blame_info or len(parsed_blame_info) != 5: |
|
Martin Barbella
2014/08/22 02:24:13
It doesn't seem like a good practice to allow pars
stgao
2014/08/22 06:50:53
+1
Why do we use 5 here?
jeun
2014/08/22 22:58:43
Done.
jeun
2014/08/22 22:58:43
Done.
|
| return |
| # Create blame object from the parsed info and add it to the list. |
| - (line_content, revision, author, url) = parsed_blame_info |
| + (line_content, revision, author, url, message) = parsed_blame_info |
| blame = Blame(line_content, component_name, stack_frame_index, file_name, |
| - crashed_line_number, author, revision, url, |
| + crashed_line_number, author, revision, message, url, |
| range_start, range_end) |
| with self.blame_list_lock: |