diff options
author | Aaron Bentley <abentley@panoramicfeedback.com> | 2005-03-09 20:03:07 +0000 |
---|---|---|
committer | Aaron Bentley <abentley@panoramicfeedback.com> | 2005-03-09 20:03:07 +0000 |
commit | cddfa700fd6f22bb0ea9f0a4c1f4566b69494748 (patch) | |
tree | e65ccb8b06aedf272cf80626e7644eb9f30c617d /libbe/cmdutil.py | |
parent | 006b0cb118041cac8081032ad2d401fdd69fe6ae (diff) | |
download | bugseverywhere-cddfa700fd6f22bb0ea9f0a4c1f4566b69494748.tar.gz |
added bugs, Switched to using uuid prefixes to ensure uniqueness
Diffstat (limited to 'libbe/cmdutil.py')
-rw-r--r-- | libbe/cmdutil.py | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/libbe/cmdutil.py b/libbe/cmdutil.py index 560c78d..2214260 100644 --- a/libbe/cmdutil.py +++ b/libbe/cmdutil.py @@ -1,15 +1,28 @@ def unique_name(bug, bugs): - return bug.name + chars = 1 + for some_bug in bugs: + if bug.uuid == some_bug.uuid: + continue + while (bug.uuid[:chars] == some_bug.uuid[:chars]): + chars+=1 + return bug.uuid[:chars] class UserError(Exception): def __init__(self, msg): Exception.__init__(self, msg) def get_bug(spec, bug_dir): + matches = [] bugs = list(bug_dir.list()) for bug in bugs: - if bug.uuid == spec: - return bug + if bug.uuid.startswith(spec): + matches.append(bug) + if len(matches) > 1: + raise UserError("More than one bug matches %s. Please be more" + " specific." % spec) + if len(matches) == 1: + return matches[0] + matches = [] for bug in bugs: if bug.name == spec: |