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

Unified Diff: gclient.py

Issue 7918027: Add a --unmanaged flag to gclient config to allow the main solution to be unmanaged by the scm. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools/
Patch Set: '' Created 9 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | gclient_scm.py » ('j') | gclient_scm.py » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « no previous file | gclient_scm.py » ('j') | gclient_scm.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698