| Index: gclient_scm.py
 | 
| ===================================================================
 | 
| --- gclient_scm.py	(revision 98571)
 | 
| +++ gclient_scm.py	(working copy)
 | 
| @@ -174,9 +174,13 @@
 | 
|      url, deps_revision = gclient_utils.SplitUrlRevision(self.url)
 | 
|      rev_str = ""
 | 
|      revision = deps_revision
 | 
| +    managed = True
 | 
|      if options.revision:
 | 
|        # Override the revision number.
 | 
|        revision = str(options.revision)
 | 
| +      if revision == 'unmanaged':
 | 
| +        revision = None
 | 
| +        managed = False
 | 
|      if not revision:
 | 
|        revision = default_rev
 | 
|  
 | 
| @@ -218,6 +222,10 @@
 | 
|          print('')
 | 
|        return
 | 
|  
 | 
| +    if not managed:
 | 
| +      print ('________ unmanaged solution; skipping %s' % self.relpath)
 | 
| +      return
 | 
| +
 | 
|      if not os.path.exists(os.path.join(self.checkout_path, '.git')):
 | 
|        raise gclient_utils.Error('\n____ %s%s\n'
 | 
|                                  '\tPath is not a git repo. No .git dir.\n'
 | 
| @@ -735,14 +743,19 @@
 | 
|      url, revision = gclient_utils.SplitUrlRevision(self.url)
 | 
|      # Keep the original unpinned url for reference in case the repo is switched.
 | 
|      base_url = url
 | 
| +    managed = True
 | 
|      if options.revision:
 | 
|        # Override the revision number.
 | 
|        revision = str(options.revision)
 | 
|      if revision:
 | 
| -      forced_revision = True
 | 
| -      # Reconstruct the url.
 | 
| -      url = '%s@%s' % (url, revision)
 | 
| -      rev_str = ' at %s' % revision
 | 
| +      if revision != 'unmanaged':
 | 
| +        forced_revision = True
 | 
| +        # Reconstruct the url.
 | 
| +        url = '%s@%s' % (url, revision)
 | 
| +        rev_str = ' at %s' % revision
 | 
| +      else:
 | 
| +        managed = False
 | 
| +        revision = None
 | 
|      else:
 | 
|        forced_revision = False
 | 
|        rev_str = ''
 | 
| @@ -754,6 +767,10 @@
 | 
|        self._RunAndGetFileList(command, options, file_list, self._root_dir)
 | 
|        return
 | 
|  
 | 
| +    if not managed:
 | 
| +      print ('________ unmanaged solution; skipping %s' % self.relpath)
 | 
| +      return
 | 
| +
 | 
|      # Get the existing scm url and the revision number of the current checkout.
 | 
|      try:
 | 
|        from_info = scm.SVN.CaptureInfo(os.path.join(self.checkout_path, '.'))
 | 
| 
 |