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

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 101882)
+++ 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
@@ -151,6 +151,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 = []
@@ -394,7 +395,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))
logging.debug('Loaded: %s' % str(self))
# Arguments number differs from overridden method
@@ -644,6 +645,7 @@
{ "name" : "%(solution_name)s",
"url" : "%(solution_url)s",
"deps_file" : "%(deps_file)s",
+ "managed" : %(managed)s,
"custom_deps" : {
},
"safesync_url": "%(safesync_url)s",
@@ -655,6 +657,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",
@@ -671,8 +674,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,
M-A Ruel 2011/09/20 17:39:34 True instead of None?
cmp 2011/09/20 18:52:13 Done.
+ 'unused', True)
self._options = options
if options.deps_os:
enforced_os = options.deps_os.split(',')
@@ -701,6 +704,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'),
@@ -730,12 +734,13 @@
return client
def SetDefaultConfig(self, solution_name, deps_file, solution_url,
- safesync_url):
+ safesync_url, managed=True):
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):
@@ -781,13 +786,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]
@@ -911,6 +917,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
@@ -1031,6 +1038,11 @@
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', default=False,
+ help='overrides the default behavior to make it possible '
+ 'to have the main solution untouched by gclient '
+ '(gclient will check out unmanaged dependencies but '
+ 'will never sync them)')
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)
@@ -1056,7 +1068,8 @@
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=not options.unmanaged)
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