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>
diff --git a/command.py b/command.py
index 9e970e8..6e4e2c5 100644
--- a/command.py
+++ b/command.py
@@ -71,6 +71,12 @@
"""A list of projects that match the arguments.
"""
all = self.manifest.projects
+
+ mp = self.manifest.manifestProject
+ if mp.relpath == '.':
+ all = dict(all)
+ all[mp.name] = mp
+
result = []
if not args:
@@ -91,7 +97,9 @@
for p in all.values():
by_path[p.worktree] = p
- if os.path.exists(path):
+ try:
+ project = by_path[path]
+ except KeyError:
while path \
and path != '/' \
and path != self.manifest.topdir:
@@ -100,11 +108,6 @@
break
except KeyError:
path = os.path.dirname(path)
- else:
- try:
- project = by_path[path]
- except KeyError:
- pass
if not project:
raise NoSuchProjectError(arg)