code: def _git_diff(self):
          
  
          # If we do not have a cached result, execute `git diff`
          if self._diff_dict is None:
  
              result_dict = dict()
  
              for diff_str in self._get_included_diff_results():
                  # Parse the output of the diff string
                  diff_dict = self._parse_diff_str(diff_str)
  
                  for src_path in diff_dict.keys():
                      if self._is_path_excluded(src_path):
                          continue
                      # If no _supported_extensions provided, or extension present: process
                      root, extension = os.path.splitext(src_path)
                      extension = extension[1:].lower()
                      # 'not self._supported_extensions' tests for both None and empty list []
                      if not self._supported_extensions or extension in self._supported_extensions:
                          added_lines, deleted_lines = diff_dict[src_path]
  
                          # Remove any lines from the dict that have been deleted
                          # Include any lines that have been added
                          result_dict[src_path] = [
                              line for line in result_dict.get(src_path, [])
                              if not line in deleted_lines
                          ] + added_lines
  
              # Eliminate repeats and order line numbers
              for (src_path, lines) in result_dict.items():
                  result_dict[src_path] = self._unique_ordered_lines(lines)
  
              # Store the resulting dict
              self._diff_dict = result_dict
  
          # Return the diff cache
          return self._diff_dict
docs: Run `git diff` and returns a dict in which the keys
          are changed file paths and the values are lists of
          line numbers.
  
          Guarantees that each line number within a file
          is unique (no repeats) and in ascending order.
  
          Returns a cached result if called multiple times.
  
          Raises a GitDiffError if `git diff` has an error.