OLD | NEW |
1 # coding=utf8 | 1 # coding=utf8 |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 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 """Manages a project checkout. | 5 """Manages a project checkout. |
6 | 6 |
7 Includes support for svn, git-svn and git. | 7 Includes support for svn, git-svn and git. |
8 """ | 8 """ |
9 | 9 |
10 import ConfigParser | 10 import ConfigParser |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 if value is None: | 359 if value is None: |
360 stdout += self._check_output_svn( | 360 stdout += self._check_output_svn( |
361 ['propdel', '--quiet', name, p.filename], credentials=False) | 361 ['propdel', '--quiet', name, p.filename], credentials=False) |
362 else: | 362 else: |
363 stdout += self._check_output_svn( | 363 stdout += self._check_output_svn( |
364 ['propset', name, value, p.filename], credentials=False) | 364 ['propset', name, value, p.filename], credentials=False) |
365 for prop, values in self.svn_config.auto_props.iteritems(): | 365 for prop, values in self.svn_config.auto_props.iteritems(): |
366 if fnmatch.fnmatch(p.filename, prop): | 366 if fnmatch.fnmatch(p.filename, prop): |
367 for value in values.split(';'): | 367 for value in values.split(';'): |
368 if '=' not in value: | 368 if '=' not in value: |
369 params = [value, '*'] | 369 params = [value, '.'] |
370 else: | 370 else: |
371 params = value.split('=', 1) | 371 params = value.split('=', 1) |
| 372 if params[1] == '*': |
| 373 # Works around crbug.com/150960 on Windows. |
| 374 params[1] = '.' |
372 stdout += self._check_output_svn( | 375 stdout += self._check_output_svn( |
373 ['propset'] + params + [p.filename], credentials=False) | 376 ['propset'] + params + [p.filename], credentials=False) |
374 for post in post_processors: | 377 for post in post_processors: |
375 post(self, p) | 378 post(self, p) |
376 except OSError, e: | 379 except OSError, e: |
377 raise PatchApplicationFailed(p, '%s%s' % (stdout, e)) | 380 raise PatchApplicationFailed(p, '%s%s' % (stdout, e)) |
378 except subprocess.CalledProcessError, e: | 381 except subprocess.CalledProcessError, e: |
379 raise PatchApplicationFailed( | 382 raise PatchApplicationFailed( |
380 p, | 383 p, |
381 'While running %s;\n%s%s' % ( | 384 'While running %s;\n%s%s' % ( |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 def revisions(self, rev1, rev2): | 649 def revisions(self, rev1, rev2): |
647 return self.checkout.revisions(rev1, rev2) | 650 return self.checkout.revisions(rev1, rev2) |
648 | 651 |
649 @property | 652 @property |
650 def project_name(self): | 653 def project_name(self): |
651 return self.checkout.project_name | 654 return self.checkout.project_name |
652 | 655 |
653 @property | 656 @property |
654 def project_path(self): | 657 def project_path(self): |
655 return self.checkout.project_path | 658 return self.checkout.project_path |
OLD | NEW |