Chromium Code Reviews| Index: gclient.py |
| =================================================================== |
| --- gclient.py (revision 101535) |
| +++ gclient.py (working copy) |
| @@ -139,7 +139,7 @@ |
| class Dependency(GClientKeywords, gclient_utils.WorkItem): |
| """Object that represents a dependency checkout.""" |
| - def __init__(self, parent, name, url, safesync_url, custom_deps, |
| + def __init__(self, parent, name, url, safesync_url, managed, custom_deps, |
| custom_vars, deps_file, should_process): |
| # Warning: this function can be called from any thread. Both |
| # self.dependencies and self.requirements are read and modified from |
| @@ -152,6 +152,7 @@ |
| self.parsed_url = None |
| # These 2 are only set in .gclient and not in DEPS files. |
| self.safesync_url = safesync_url |
| + self.managed = managed |
| self.custom_vars = custom_vars or {} |
| self.custom_deps = custom_deps or {} |
| self.deps_hooks = [] |
| @@ -391,7 +392,7 @@ |
| 'Dependency %s specified more than once:\n %s\nvs\n %s' % |
| (name, tree[name].hierarchy(), self.hierarchy())) |
| self.dependencies.append(Dependency(self, name, url, None, None, None, |
| - self.deps_file, should_process)) |
| + None, self.deps_file, should_process)) |
|
Dirk Pranke
2011/09/16 19:06:35
style nit ... at some point w/ all these None argu
cmp
2011/09/20 01:12:28
I agree, yet I don't want to make that change here
|
| logging.debug('Loaded: %s' % str(self)) |
| # Arguments number differs from overridden method |
| @@ -641,6 +642,7 @@ |
| { "name" : "%(solution_name)s", |
| "url" : "%(solution_url)s", |
| "deps_file" : "%(deps_file)s", |
| + "managed" : %(managed)s, |
| "custom_deps" : { |
| }, |
| "safesync_url": "%(safesync_url)s", |
| @@ -652,6 +654,7 @@ |
| { "name" : "%(solution_name)s", |
| "url" : "%(solution_url)s", |
| "deps_file" : "%(deps_file)s", |
| + "managed" : %(managed)s, |
| "custom_deps" : { |
| %(solution_deps)s }, |
| "safesync_url": "%(safesync_url)s", |
| @@ -668,8 +671,8 @@ |
| # Do not change previous behavior. Only solution level and immediate DEPS |
| # are processed. |
| self._recursion_limit = 2 |
| - Dependency.__init__(self, None, None, None, None, None, None, 'unused', |
| - True) |
| + Dependency.__init__(self, None, None, None, None, None, None, None, |
| + 'unused', True) |
| self._options = options |
| if options.deps_os: |
| enforced_os = options.deps_os.split(',') |
| @@ -698,6 +701,7 @@ |
| self.dependencies.append(Dependency( |
| self, s['name'], s['url'], |
| s.get('safesync_url', None), |
| + s.get('managed', True), |
| s.get('custom_deps', {}), |
| s.get('custom_vars', {}), |
| s.get('deps_file', 'DEPS'), |
| @@ -727,12 +731,13 @@ |
| return client |
| def SetDefaultConfig(self, solution_name, deps_file, solution_url, |
| - safesync_url): |
| + safesync_url, managed): |
| self.SetConfig(self.DEFAULT_CLIENT_FILE_TEXT % { |
| 'solution_name': solution_name, |
| 'solution_url': solution_url, |
| 'deps_file': deps_file, |
| 'safesync_url' : safesync_url, |
| + 'managed': managed, |
| }) |
| def _SaveEntries(self): |
| @@ -778,13 +783,14 @@ |
| # Do not check safesync_url if one or more --revision flag is specified. |
| if not self._options.revisions: |
| for s in self.dependencies: |
| - if not s.safesync_url: |
| - continue |
| - handle = urllib.urlopen(s.safesync_url) |
| - rev = handle.read().strip() |
| - handle.close() |
| - if len(rev): |
| - self._options.revisions.append('%s@%s' % (s.name, rev)) |
| + if not s.managed: |
| + self._options.revisions.append('%s@unmanaged' % s.name) |
| + elif s.safesync_url: |
| + handle = urllib.urlopen(s.safesync_url) |
| + rev = handle.read().strip() |
| + handle.close() |
| + if len(rev): |
| + self._options.revisions.append('%s@%s' % (s.name, rev)) |
| if not self._options.revisions: |
| return revision_overrides |
| solutions_names = [s.name for s in self.dependencies] |
| @@ -908,6 +914,7 @@ |
| 'solution_url': d.url, |
| 'deps_file': d.deps_file, |
| 'safesync_url' : d.safesync_url or '', |
| + 'managed': d.managed, |
| 'solution_deps': ''.join(custom_deps), |
| } |
| # Print the snapshot configuration file |
| @@ -1028,6 +1035,9 @@ |
| parser.add_option('--deps-file', default='DEPS', |
| help='overrides the default name for the DEPS file for the' |
| 'main solutions and all sub-dependencies') |
| + parser.add_option('--unmanaged', action='store_true', |
| + help='overrides the default behavior to make it possible to' |
| + 'have the main solution untouched by gclient') |
| parser.add_option('--git-deps', action='store_true', |
| help='sets the deps file to ".DEPS.git" instead of "DEPS"') |
| (options, args) = parser.parse_args(args) |
| @@ -1050,10 +1060,13 @@ |
| deps_file = options.deps_file |
| if options.git_deps: |
| deps_file = '.DEPS.git' |
| + managed = True |
| + if options.unmanaged: |
| + managed = False |
|
Dirk Pranke
2011/09/16 19:06:35
Why not just use default=False above when you defi
cmp
2011/09/20 01:12:28
Good idea, done.
|
| safesync_url = '' |
| if len(args) > 1: |
| safesync_url = args[1] |
| - client.SetDefaultConfig(name, deps_file, base_url, safesync_url) |
| + client.SetDefaultConfig(name, deps_file, base_url, safesync_url, managed) |
|
M-A Ruel
2011/09/16 18:58:23
s/managed/not options.unmanaged/ and replace lines
Dirk Pranke
2011/09/16 19:06:35
Actually, I would specify default=False and just d
cmp
2011/09/20 01:12:28
I implemented Dirk's suggestion (which is like thi
cmp
2011/09/20 01:12:28
Done.
|
| client.SaveConfig() |
| return 0 |