Преглед изворни кода

Allow the manifest to be accessed it if is in work tree

If the manifest's work tree is actually inside of the rest of
the client work tree then its only fair that we include it as
a project that the user can access.

Signed-off-by: Shawn O. Pearce <sop@google.com>
Shawn O. Pearce пре 16 година
родитељ
комит
ce86abbe8a
1 измењених фајлова са 9 додато и 6 уклоњено
  1. 9 6
      command.py

+ 9 - 6
command.py

@@ -71,6 +71,12 @@ class Command(object):
     """A list of projects that match the arguments.
     """A list of projects that match the arguments.
     """
     """
     all = self.manifest.projects
     all = self.manifest.projects
+
+    mp = self.manifest.manifestProject
+    if mp.relpath == '.':
+      all = dict(all)
+      all[mp.name] = mp
+
     result = []
     result = []
 
 
     if not args:
     if not args:
@@ -91,7 +97,9 @@ class Command(object):
             for p in all.values():
             for p in all.values():
               by_path[p.worktree] = p
               by_path[p.worktree] = p
 
 
-          if os.path.exists(path):
+          try:
+            project = by_path[path]
+          except KeyError:
             while path \
             while path \
               and path != '/' \
               and path != '/' \
               and path != self.manifest.topdir:
               and path != self.manifest.topdir:
@@ -100,11 +108,6 @@ class Command(object):
                 break
                 break
               except KeyError:
               except KeyError:
                 path = os.path.dirname(path)
                 path = os.path.dirname(path)
-          else:
-            try:
-              project = by_path[path]
-            except KeyError:
-              pass
 
 
         if not project:
         if not project:
           raise NoSuchProjectError(arg)
           raise NoSuchProjectError(arg)