Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(480)

Unified Diff: third_party/WebKit/Tools/Scripts/webkitpy/common/checkout/diff_parser.py

Issue 2742453003: webkitpy: Simplify DiffParser, removing support for SVN patches. (Closed)
Patch Set: Re-add accidentally-removed baseline Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Tools/Scripts/webkitpy/common/checkout/diff_parser_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Tools/Scripts/webkitpy/common/checkout/diff_parser.py
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/common/checkout/diff_parser.py b/third_party/WebKit/Tools/Scripts/webkitpy/common/checkout/diff_parser.py
index 90fd961b660803ce5bf092fd537f4ba2bc19069f..739131fc4ac23aaaa124516f9ee2c43502a36005 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/common/checkout/diff_parser.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/common/checkout/diff_parser.py
@@ -33,53 +33,9 @@ import re
_log = logging.getLogger(__name__)
-conversion_patterns = (
- (re.compile(r"^diff --git \w/(.+) \w/(?P<FilePath>.+)"), lambda matched: "Index: " + matched.group('FilePath') + "\n"),
- (re.compile(r"^new file.*"), lambda matched: "\n"),
- (re.compile(r"^index (([0-9a-f]{7}\.\.[0-9a-f]{7})|([0-9a-f]{40}\.\.[0-9a-f]{40})) [0-9]{6}"),
- lambda matched: ("=" * 67) + "\n"),
- (re.compile(r"^--- \w/(?P<FilePath>.+)"), lambda matched: "--- " + matched.group('FilePath') + "\n"),
- (re.compile(r"^\+\+\+ \w/(?P<FilePath>.+)"), lambda matched: "+++ " + matched.group('FilePath') + "\n"),
-)
+INDEX_PATTERN = re.compile(r'^diff --git \w/(.+) \w/(?P<FilePath>.+)')
+LINES_CHANGED_PATTERN = re.compile(r"^@@ -(?P<OldStartLine>\d+)(,\d+)? \+(?P<NewStartLine>\d+)(,\d+)? @@")
-index_pattern = re.compile(r"^Index: (?P<FilePath>.+)")
-lines_changed_pattern = re.compile(r"^@@ -(?P<OldStartLine>\d+)(,\d+)? \+(?P<NewStartLine>\d+)(,\d+)? @@")
-diff_git_pattern = re.compile(r"^diff --git \w/")
-
-
-def git_diff_to_svn_diff(line):
- """Converts a git formatted diff line to a svn formatted line.
-
- Args:
- line: A string representing a line of the diff.
- """
- for pattern, conversion in conversion_patterns:
- matched = pattern.match(line)
- if matched:
- return conversion(matched)
- return line
-
-
-# This function exists so we can unittest get_diff_converter function
-def svn_diff_to_svn_diff(line):
- return line
-
-
-def get_diff_converter(lines):
- """Gets a converter function of diff lines.
-
- Args:
- lines: The lines of a diff file.
- If this line is git formatted, we'll return a
- converter from git to SVN.
- """
- for i, line in enumerate(lines[:-1]):
- # Stop when we find the first patch
- if line[:3] == "+++" and lines[i + 1] == "---":
- break
- if diff_git_pattern.match(line):
- return git_diff_to_svn_diff
- return svn_diff_to_svn_diff
_INITIAL_STATE = 1
_DECLARED_FILE_PATH = 2
@@ -140,12 +96,10 @@ class DiffParser(object):
current_file = None
old_diff_line = None
new_diff_line = None
- transform_line = get_diff_converter(diff_input)
for line in diff_input:
- line = line.rstrip("\n")
- line = transform_line(line)
+ line = line.rstrip('\n')
- file_declaration = index_pattern.match(line)
+ file_declaration = INDEX_PATTERN.match(line)
if file_declaration:
filename = file_declaration.group('FilePath')
current_file = DiffFile(filename)
@@ -153,7 +107,7 @@ class DiffParser(object):
state = _DECLARED_FILE_PATH
continue
- lines_changed = lines_changed_pattern.match(line)
+ lines_changed = LINES_CHANGED_PATTERN.match(line)
if lines_changed:
if state != _DECLARED_FILE_PATH and state != _PROCESSING_CHUNK:
_log.error('Unexpected line change without file path declaration: %r', line)
« no previous file with comments | « no previous file | third_party/WebKit/Tools/Scripts/webkitpy/common/checkout/diff_parser_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698