def compare(sha1 = master_commit_sha, sha2 = head_sha)
      diff_return = {}

      sha1 = define_psuedo_commit if @settings[:commit]
      # Reverse so that we go in chronological order
      git_spread = commit_range(sha1, sha2).reverse

      git_spread.each do |git_sha|

        # Grab all files in that commit and group them by extension
        #   If working copy, just give the diff names of the files changed
        files = @psuedo_commit ? working_copy_files : files_by_sha(git_sha)

        diff_return[git_sha] = match_associations(git_sha, files)
      end

      diff_return
    end
def compare(sha1 = master_commit_sha, sha2 = head_sha)
      diff_return = {}

      sha1 = define_psuedo_commit if @settings[:commit]
      # Reverse so that we go in chronological order
      git_spread = commit_range(sha1, sha2).reverse

      git_spread.each do |git_sha|

        # Grab all files in that commit and group them by extension
        #   If working copy, just give the diff names of the files changed
        files = @psuedo_commit ? working_copy_files : files_by_sha(git_sha)

        diff_return[git_sha] = match_associations(git_sha, files)
      end

      diff_return
    end
Compare two commits and get line number ranges of changed patches

 @example output from the method
   {
     'sha': {
       rb: {
         filename: 'file.rb',
         changes: {
           ['0..4'],
           ['10..20']
         }
       }
     }
   }
 @param sha1 [String]
 @param sha2 [String]
 @return [Hash] diff_return files changed grouped by file extension and line number