diff options
| author | Shawn O. Pearce <sop@google.com> | 2009-03-03 17:47:06 -0800 |
|---|---|---|
| committer | Shawn O. Pearce <sop@google.com> | 2009-03-03 17:47:06 -0800 |
| commit | c95583bf4f17b8467f815b6391ffc6c7add08804 (patch) | |
| tree | c69bf8a061279b79326fb00f2197efcd8726864c /command.py | |
| parent | 6a5644d392069b67f17c8ce6cb10f07cce71cc1c (diff) | |
| download | git-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.py | 5 |
1 files changed, 5 insertions, 0 deletions
| @@ -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 | |||
| 118 | class MirrorSafeCommand(object): | ||
| 119 | """Command permits itself to run within a mirror, | ||
| 120 | and does not require a working directory. | ||
| 121 | """ | ||
