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

Side by Side Diff: checkout.py

Issue 7192010: Fix Checkout.post_processsors setup. __init__() was ignoring the argument! (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 9 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | tests/checkout_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 """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 from __future__ import with_statement 10 from __future__ import with_statement
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 class CheckoutBase(object): 58 class CheckoutBase(object):
59 # Set to None to have verbose output. 59 # Set to None to have verbose output.
60 VOID = subprocess2.VOID 60 VOID = subprocess2.VOID
61 61
62 def __init__(self, root_dir, project_name, post_processors): 62 def __init__(self, root_dir, project_name, post_processors):
63 """ 63 """
64 Args: 64 Args:
65 post_processor: list of lambda(checkout, patches) to call on each of the 65 post_processor: list of lambda(checkout, patches) to call on each of the
66 modified files. 66 modified files.
67 """ 67 """
68 super(CheckoutBase, self).__init__()
68 self.root_dir = root_dir 69 self.root_dir = root_dir
69 self.project_name = project_name 70 self.project_name = project_name
70 if self.project_name is None: 71 if self.project_name is None:
71 self.project_path = self.root_dir 72 self.project_path = self.root_dir
72 else: 73 else:
73 self.project_path = os.path.join(self.root_dir, self.project_name) 74 self.project_path = os.path.join(self.root_dir, self.project_name)
74 # Only used for logging purposes. 75 # Only used for logging purposes.
75 self._last_seen_revision = None 76 self._last_seen_revision = None
76 self.post_processors = None 77 self.post_processors = post_processors
77 assert self.root_dir 78 assert self.root_dir
78 assert self.project_path 79 assert self.project_path
79 80
80 def get_settings(self, key): 81 def get_settings(self, key):
81 return get_code_review_setting(self.project_path, key) 82 return get_code_review_setting(self.project_path, key)
82 83
83 def prepare(self, revision): 84 def prepare(self, revision):
84 """Checks out a clean copy of the tree and removes any local modification. 85 """Checks out a clean copy of the tree and removes any local modification.
85 86
86 This function shouldn't throw unless the remote repository is inaccessible, 87 This function shouldn't throw unless the remote repository is inaccessible,
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 p.filename, '%s%s' % (stdout, getattr(e, 'stdout', None))) 153 p.filename, '%s%s' % (stdout, getattr(e, 'stdout', None)))
153 154
154 def commit(self, commit_message, user): 155 def commit(self, commit_message, user):
155 """Stubbed out.""" 156 """Stubbed out."""
156 raise NotImplementedError('RawCheckout can\'t commit') 157 raise NotImplementedError('RawCheckout can\'t commit')
157 158
158 159
159 class SvnConfig(object): 160 class SvnConfig(object):
160 """Parses a svn configuration file.""" 161 """Parses a svn configuration file."""
161 def __init__(self, svn_config_dir=None): 162 def __init__(self, svn_config_dir=None):
163 super(SvnConfig, self).__init__()
162 self.svn_config_dir = svn_config_dir 164 self.svn_config_dir = svn_config_dir
163 self.default = not bool(self.svn_config_dir) 165 self.default = not bool(self.svn_config_dir)
164 if not self.svn_config_dir: 166 if not self.svn_config_dir:
165 if sys.platform == 'win32': 167 if sys.platform == 'win32':
166 self.svn_config_dir = os.path.join(os.environ['APPDATA'], 'Subversion') 168 self.svn_config_dir = os.path.join(os.environ['APPDATA'], 'Subversion')
167 else: 169 else:
168 self.svn_config_dir = os.path.join(os.environ['HOME'], '.subversion') 170 self.svn_config_dir = os.path.join(os.environ['HOME'], '.subversion')
169 svn_config_file = os.path.join(self.svn_config_dir, 'config') 171 svn_config_file = os.path.join(self.svn_config_dir, 'config')
170 parser = ConfigParser.SafeConfigParser() 172 parser = ConfigParser.SafeConfigParser()
171 if os.path.isfile(svn_config_file): 173 if os.path.isfile(svn_config_file):
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 v = v.strip() 236 v = v.strip()
235 assert not k in values 237 assert not k in values
236 values[k] = v 238 values[k] = v
237 return values.get(key, None) 239 return values.get(key, None)
238 240
239 241
240 class SvnCheckout(CheckoutBase, SvnMixIn): 242 class SvnCheckout(CheckoutBase, SvnMixIn):
241 """Manages a subversion checkout.""" 243 """Manages a subversion checkout."""
242 def __init__(self, root_dir, project_name, commit_user, commit_pwd, svn_url, 244 def __init__(self, root_dir, project_name, commit_user, commit_pwd, svn_url,
243 post_processors=None): 245 post_processors=None):
244 super(SvnCheckout, self).__init__(root_dir, project_name, post_processors) 246 CheckoutBase.__init__(self, root_dir, project_name, post_processors)
247 SvnMixIn.__init__(self)
245 self.commit_user = commit_user 248 self.commit_user = commit_user
246 self.commit_pwd = commit_pwd 249 self.commit_pwd = commit_pwd
247 self.svn_url = svn_url 250 self.svn_url = svn_url
248 assert bool(self.commit_user) >= bool(self.commit_pwd) 251 assert bool(self.commit_user) >= bool(self.commit_pwd)
249 252
250 def prepare(self, revision): 253 def prepare(self, revision):
251 # Will checkout if the directory is not present. 254 # Will checkout if the directory is not present.
252 assert self.svn_url 255 assert self.svn_url
253 if not os.path.isdir(self.project_path): 256 if not os.path.isdir(self.project_path):
254 logging.info('Checking out %s in %s' % 257 logging.info('Checking out %s in %s' %
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 return branches, active 510 return branches, active
508 511
509 512
510 class GitSvnCheckoutBase(GitCheckoutBase, SvnMixIn): 513 class GitSvnCheckoutBase(GitCheckoutBase, SvnMixIn):
511 """Base class for git-svn checkout. Not to be used as-is.""" 514 """Base class for git-svn checkout. Not to be used as-is."""
512 def __init__(self, 515 def __init__(self,
513 root_dir, project_name, remote_branch, 516 root_dir, project_name, remote_branch,
514 commit_user, commit_pwd, 517 commit_user, commit_pwd,
515 svn_url, trunk, post_processors=None): 518 svn_url, trunk, post_processors=None):
516 """trunk is optional.""" 519 """trunk is optional."""
517 super(GitSvnCheckoutBase, self).__init__( 520 GitCheckoutBase.__init__(
518 root_dir, project_name + '.git', remote_branch, post_processors) 521 self, root_dir, project_name + '.git', remote_branch, post_processors)
522 SvnMixIn.__init__(self)
519 self.commit_user = commit_user 523 self.commit_user = commit_user
520 self.commit_pwd = commit_pwd 524 self.commit_pwd = commit_pwd
521 # svn_url in this case is the root of the svn repository. 525 # svn_url in this case is the root of the svn repository.
522 self.svn_url = svn_url 526 self.svn_url = svn_url
523 self.trunk = trunk 527 self.trunk = trunk
524 assert bool(self.commit_user) >= bool(self.commit_pwd) 528 assert bool(self.commit_user) >= bool(self.commit_pwd)
525 assert self.svn_url 529 assert self.svn_url
526 assert self.trunk 530 assert self.trunk
527 self._cache_svn_auth() 531 self._cache_svn_auth()
528 532
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 self.svn_url, self.project_path, 683 self.svn_url, self.project_path,
680 '--quiet'], 684 '--quiet'],
681 cwd=self.root_dir, 685 cwd=self.root_dir,
682 stderr=subprocess2.STDOUT) 686 stderr=subprocess2.STDOUT)
683 return super(GitSvnCheckout, self).prepare(revision) 687 return super(GitSvnCheckout, self).prepare(revision)
684 688
685 689
686 class ReadOnlyCheckout(object): 690 class ReadOnlyCheckout(object):
687 """Converts a checkout into a read-only one.""" 691 """Converts a checkout into a read-only one."""
688 def __init__(self, checkout): 692 def __init__(self, checkout):
693 super(ReadOnlyCheckout, self).__init__()
689 self.checkout = checkout 694 self.checkout = checkout
690 695
691 def prepare(self, revision): 696 def prepare(self, revision):
692 return self.checkout.prepare(revision) 697 return self.checkout.prepare(revision)
693 698
694 def get_settings(self, key): 699 def get_settings(self, key):
695 return self.checkout.get_settings(key) 700 return self.checkout.get_settings(key)
696 701
697 def apply_patch(self, patches): 702 def apply_patch(self, patches):
698 return self.checkout.apply_patch(patches) 703 return self.checkout.apply_patch(patches)
699 704
700 def commit(self, message, user): # pylint: disable=R0201 705 def commit(self, message, user): # pylint: disable=R0201
701 logging.info('Would have committed for %s with message: %s' % ( 706 logging.info('Would have committed for %s with message: %s' % (
702 user, message)) 707 user, message))
703 return 'FAKE' 708 return 'FAKE'
704 709
705 @property 710 @property
706 def project_name(self): 711 def project_name(self):
707 return self.checkout.project_name 712 return self.checkout.project_name
708 713
709 @property 714 @property
710 def project_path(self): 715 def project_path(self):
711 return self.checkout.project_path 716 return self.checkout.project_path
OLDNEW
« no previous file with comments | « no previous file | tests/checkout_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698