summaryrefslogtreecommitdiffstats
path: root/command.py
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2009-03-03 17:47:06 -0800
committerShawn O. Pearce <sop@google.com>2009-03-03 17:47:06 -0800
commitc95583bf4f17b8467f815b6391ffc6c7add08804 (patch)
treec69bf8a061279b79326fb00f2197efcd8726864c /command.py
parent6a5644d392069b67f17c8ce6cb10f07cce71cc1c (diff)
downloadgit-repo-c95583bf4f17b8467f815b6391ffc6c7add08804.tar.gz
Don't permit users to run repo status in a mirror client
If a client was created with "repo init --mirror" then there are no working directories present, and no files checked out. Using a command like "repo status" in this context makes no sense, and actually throws back a Pytyon traceback at the console when the underlying commands fail out. We now tag commands with the MirrorSafeCommand type if they are able to be executed within a mirror directory safely. Using a command in a mirror which lacks this base class results in a useful error letting you know the command isn't supported. Bug: REPO-14 Signed-off-by: Shawn O. Pearce <sop@google.com>
Diffstat (limited to 'command.py')
-rw-r--r--command.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/command.py b/command.py
index 516c2d9d..c3cad5ea 100644
--- a/command.py
+++ b/command.py
@@ -114,3 +114,8 @@ class PagedCommand(Command):
114 """Command which defaults to output in a pager, as its 114 """Command which defaults to output in a pager, as its
115 display tends to be larger than one screen full. 115 display tends to be larger than one screen full.
116 """ 116 """
117
118class MirrorSafeCommand(object):
119 """Command permits itself to run within a mirror,
120 and does not require a working directory.
121 """