Changeset 140775 in webkit
- Timestamp:
- Jan 24, 2013 9:06:31 PM (11 years ago)
- Location:
- trunk/Tools
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r140774 r140775 1 2013-01-24 Tim 'mithro' Ansell <mithro@mithis.com> 2 3 Fixing the diff_parser to correctly identify git diffs even with leading comments. 4 https://bugs.webkit.org/show_bug.cgi?id=107871 5 6 Reviewed by Eric Seidel. 7 8 * Scripts/webkitpy/common/checkout/diff_parser.py: 9 * Scripts/webkitpy/common/checkout/diff_parser_unittest.py: 10 * Scripts/webkitpy/tool/steps/haslanded.py: 11 1 12 2013-01-24 James Robinson <jamesr@chromium.org> 2 13 -
trunk/Tools/Scripts/webkitpy/common/checkout/diff_parser.py
r140301 r140775 70 70 71 71 72 # This function exists so we can unittest get_diff_converter function 73 def svn_diff_to_svn_diff(line): 74 return line 75 76 72 77 # FIXME: This method belongs on DiffParser 73 def get_diff_converter( first_diff_line):78 def get_diff_converter(lines): 74 79 """Gets a converter function of diff lines. 75 80 76 81 Args: 77 first_diff_line: The first filename lineof a diff file.78 79 82 lines: The lines of a diff file. 83 If this line is git formatted, we'll return a 84 converter from git to SVN. 80 85 """ 81 if match(r"^diff --git \w/", first_diff_line): 82 return git_diff_to_svn_diff 83 return lambda input: input 84 86 for i, line in enumerate(lines[:-1]): 87 # Stop when we find the first patch 88 if line[:3] == "+++" and lines[i + 1] == "---": 89 break 90 if match(r"^diff --git \w/", line): 91 return git_diff_to_svn_diff 92 return svn_diff_to_svn_diff 85 93 86 94 _INITIAL_STATE = 1 … … 143 151 old_diff_line = None 144 152 new_diff_line = None 153 transform_line = get_diff_converter(diff_input) 145 154 for line in diff_input: 146 155 line = line.rstrip("\n") 147 if state == _INITIAL_STATE:148 transform_line = get_diff_converter(line)149 156 line = transform_line(line) 150 157 -
trunk/Tools/Scripts/webkitpy/common/checkout/diff_parser_unittest.py
r140301 r140775 79 79 self.assertEqual((0, 1), diff.lines[0][0:2]) 80 80 81 def test_diff_converter(self): 82 comment_lines = [ 83 "Hey guys,\n", 84 "\n", 85 "See my awesome patch below!\n", 86 "\n", 87 " - Cool Hacker\n", 88 "\n", 89 ] 90 91 revision_lines = [ 92 "Subversion Revision 289799\n", 93 ] 94 95 svn_diff_lines = [ 96 "Index: Tools/Scripts/webkitpy/common/checkout/diff_parser.py\n", 97 "===================================================================\n", 98 "--- Tools/Scripts/webkitpy/common/checkout/diff_parser.py\n", 99 "+++ Tools/Scripts/webkitpy/common/checkout/diff_parser.py\n", 100 "@@ -59,6 +59,7 @@ def git_diff_to_svn_diff(line):\n", 101 ] 102 self.assertEqual(diff_parser.get_diff_converter(svn_diff_lines), diff_parser.svn_diff_to_svn_diff) 103 self.assertEqual(diff_parser.get_diff_converter(comment_lines + svn_diff_lines), diff_parser.svn_diff_to_svn_diff) 104 self.assertEqual(diff_parser.get_diff_converter(revision_lines + svn_diff_lines), diff_parser.svn_diff_to_svn_diff) 105 106 git_diff_lines = [ 107 "diff --git a/Tools/Scripts/webkitpy/common/checkout/diff_parser.py b/Tools/Scripts/webkitpy/common/checkout/diff_parser.py\n", 108 "index 3c5b45b..0197ead 100644\n", 109 "--- a/Tools/Scripts/webkitpy/common/checkout/diff_parser.py\n", 110 "+++ b/Tools/Scripts/webkitpy/common/checkout/diff_parser.py\n", 111 "@@ -59,6 +59,7 @@ def git_diff_to_svn_diff(line):\n", 112 ] 113 self.assertEqual(diff_parser.get_diff_converter(git_diff_lines), diff_parser.git_diff_to_svn_diff) 114 self.assertEqual(diff_parser.get_diff_converter(comment_lines + git_diff_lines), diff_parser.git_diff_to_svn_diff) 115 self.assertEqual(diff_parser.get_diff_converter(revision_lines + git_diff_lines), diff_parser.git_diff_to_svn_diff) 116 81 117 def test_git_mnemonicprefix(self): 82 118 p = re.compile(r' ([a|b])/') -
trunk/Tools/Scripts/webkitpy/tool/steps/haslanded.py
r140674 r140775 47 47 def convert_to_svn(cls, diff): 48 48 lines = StringIO.StringIO(diff).readlines() 49 convert = diff_parser.get_diff_converter(lines [0])49 convert = diff_parser.get_diff_converter(lines) 50 50 return "".join(convert(x) for x in lines) 51 51
Note: See TracChangeset
for help on using the changeset viewer.