From ba3278a749c0e003c708e7ffc25a3af040c26690 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Thu, 24 Dec 2020 12:34:55 +0200 Subject: utils: checkstyle.py: Move diff parsing to Commit class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To avoid duplicating diff parsing in commit checkers, move it to the Commit class. Signed-off-by: Laurent Pinchart Reviewed-by: Niklas Söderlund --- utils/checkstyle.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'utils') diff --git a/utils/checkstyle.py b/utils/checkstyle.py index 07e896d9..9c2a1837 100755 --- a/utils/checkstyle.py +++ b/utils/checkstyle.py @@ -236,9 +236,10 @@ class Commit: return self.__title def get_diff(self, top_level, filename): - return subprocess.run(['git', 'diff', '%s~..%s' % (self.commit, self.commit), + diff = subprocess.run(['git', 'diff', '%s~..%s' % (self.commit, self.commit), '--', '%s/%s' % (top_level, filename)], stdout=subprocess.PIPE).stdout.decode('utf-8') + return parse_diff(diff.splitlines(True)) def get_file(self, filename): return subprocess.run(['git', 'show', '%s:%s' % (self.commit, filename)], @@ -256,9 +257,10 @@ class StagedChanges(Commit): self.__files = [CommitFile(f) for f in ret.splitlines()] def get_diff(self, top_level, filename): - return subprocess.run(['git', 'diff', '--staged', '--', + diff = subprocess.run(['git', 'diff', '--staged', '--', '%s/%s' % (top_level, filename)], stdout=subprocess.PIPE).stdout.decode('utf-8') + return parse_diff(diff.splitlines(True)) class Amendment(StagedChanges): @@ -276,9 +278,10 @@ class Amendment(StagedChanges): self.__files = [CommitFile(f) for f in ret.splitlines()] def get_diff(self, top_level, filename): - return subprocess.run(['git', 'diff', '--staged', 'HEAD~', '--', + diff = subprocess.run(['git', 'diff', '--staged', 'HEAD~', '--', '%s/%s' % (top_level, filename)], stdout=subprocess.PIPE).stdout.decode('utf-8') + return parse_diff(diff.splitlines(True)) # ------------------------------------------------------------------------------ @@ -657,9 +660,7 @@ class StripTrailingSpaceFormatter(Formatter): def check_file(top_level, commit, filename): # Extract the line numbers touched by the commit. - diff = commit.get_diff(top_level, filename) - diff = diff.splitlines(True) - commit_diff = parse_diff(diff) + commit_diff = commit.get_diff(top_level, filename) lines = [] for hunk in commit_diff: -- cgit v1.2.1