OLD | NEW |
1 # coding=utf8 | 1 # coding=utf8 |
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 """Utility functions to handle patches.""" | 5 """Utility functions to handle patches.""" |
6 | 6 |
7 import posixpath | 7 import posixpath |
8 import os | 8 import os |
9 import re | 9 import re |
10 | 10 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 | 82 |
83 def get(self): | 83 def get(self): |
84 return self.data | 84 return self.data |
85 | 85 |
86 | 86 |
87 class FilePatchDiff(FilePatchBase): | 87 class FilePatchDiff(FilePatchBase): |
88 """Patch for a single file.""" | 88 """Patch for a single file.""" |
89 | 89 |
90 def __init__(self, filename, diff, svn_properties): | 90 def __init__(self, filename, diff, svn_properties): |
91 super(FilePatchDiff, self).__init__(filename) | 91 super(FilePatchDiff, self).__init__(filename) |
| 92 if not diff: |
| 93 self._fail('File doesn\'t have a diff.') |
92 self.diff_header, self.diff_hunks = self._split_header(diff) | 94 self.diff_header, self.diff_hunks = self._split_header(diff) |
93 self.svn_properties = svn_properties or [] | 95 self.svn_properties = svn_properties or [] |
94 self.is_git_diff = self._is_git_diff_header(self.diff_header) | 96 self.is_git_diff = self._is_git_diff_header(self.diff_header) |
95 self.patchlevel = 0 | 97 self.patchlevel = 0 |
96 if self.is_git_diff: | 98 if self.is_git_diff: |
97 self._verify_git_header() | 99 self._verify_git_header() |
98 assert not svn_properties | 100 assert not svn_properties |
99 else: | 101 else: |
100 self._verify_svn_header() | 102 self._verify_svn_header() |
101 | 103 |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 for patch in self.patches: | 273 for patch in self.patches: |
272 patch.set_relpath(relpath) | 274 patch.set_relpath(relpath) |
273 | 275 |
274 def __iter__(self): | 276 def __iter__(self): |
275 for patch in self.patches: | 277 for patch in self.patches: |
276 yield patch | 278 yield patch |
277 | 279 |
278 @property | 280 @property |
279 def filenames(self): | 281 def filenames(self): |
280 return [p.filename for p in self.patches] | 282 return [p.filename for p in self.patches] |
OLD | NEW |