aboutsummaryrefslogtreecommitdiffstats
path: root/libbe/cmdutil.py
diff options
context:
space:
mode:
authorAaron Bentley <abentley@panoramicfeedback.com>2005-03-09 20:03:07 +0000
committerAaron Bentley <abentley@panoramicfeedback.com>2005-03-09 20:03:07 +0000
commitcddfa700fd6f22bb0ea9f0a4c1f4566b69494748 (patch)
treee65ccb8b06aedf272cf80626e7644eb9f30c617d /libbe/cmdutil.py
parent006b0cb118041cac8081032ad2d401fdd69fe6ae (diff)
downloadbugseverywhere-cddfa700fd6f22bb0ea9f0a4c1f4566b69494748.tar.gz
added bugs, Switched to using uuid prefixes to ensure uniqueness
Diffstat (limited to 'libbe/cmdutil.py')
-rw-r--r--libbe/cmdutil.py19
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: