gclient: Make gclient respect unmanaged dependencies when syncing.

gclient syncs unmanaged dependencies when '--revision' files are passed,
regardless of whether the dependency appears in the revision flags or not.

Bug: 853032
Change-Id: I66de0865e1103d92524f565f4392dae24a5648e1
Reviewed-on: https://chromium-review.googlesource.com/1105416
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
diff --git a/gclient.py b/gclient.py
index 2ebadb0..a09c15d 100755
--- a/gclient.py
+++ b/gclient.py
@@ -622,7 +622,7 @@
                 parent=self,
                 name=name,
                 url=url,
-                managed=None,
+                managed=True,
                 custom_deps=None,
                 custom_vars=self.custom_vars,
                 custom_hooks=None,
@@ -855,6 +855,8 @@
     file_list = [] if not options.nohooks else None
     revision_override = revision_overrides.pop(
         self.FuzzyMatchUrl(revision_overrides), None)
+    if not revision_override and not self.managed:
+      revision_override = 'unmanaged'
     if run_scm and self.url:
       # Create a shallow copy to mutate revision.
       options = copy.copy(options)
@@ -1478,10 +1480,6 @@
     if self._options.head:
       return revision_overrides
     if not self._options.revisions:
-      for s in self.dependencies:
-        if not s.managed:
-          self._options.revisions.append('%s@unmanaged' % s.name)
-    if not self._options.revisions:
       return revision_overrides
     solutions_names = [s.name for s in self.dependencies]
     index = 0