From a210eb6d8a3418a36aa0da75cf355b937ef1a992 Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Sun, 14 Nov 2010 21:45:26 +0100 Subject: Fix list --important to actually apply a filter. --- libbe/command/depend.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libbe/command/depend.py b/libbe/command/depend.py index e1446fe..0fd8f2e 100644 --- a/libbe/command/depend.py +++ b/libbe/command/depend.py @@ -84,11 +84,11 @@ def parse_status(status): return status def parse_severity(severity, important=False): - if severity == 'all': - severity = libbe.bug.severity_values - elif important == True: + if important == True: serious = libbe.bug.severity_values.index('serious') - severity.append(list(libbe.bug.severity_values[serious:])) + severity = list(libbe.bug.severity_values[serious:]) + elif severity == 'all': + severity = libbe.bug.severity_values else: severity = libbe.command.util.select_values( severity, libbe.bug.severity_values) -- cgit From 6987178bcff46151f4eb827b8415b10c856b4b73 Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Sun, 21 Nov 2010 19:59:53 +0100 Subject: Provide context in comments editor. --- libbe/command/comment.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libbe/command/comment.py b/libbe/command/comment.py index aea0930..20a66c3 100644 --- a/libbe/command/comment.py +++ b/libbe/command/comment.py @@ -124,11 +124,13 @@ class Comment (libbe.command.Command): # try to launch an editor for comment-body entry try: if parent == bug.comment_root: - parent_body = bug.summary+'\n' + header = "Subject: %s" % bug.summary + parent_body = parent.string_thread() or "No comments" else: + header = "From: %s\nTo: %s" % (parent.author, bug) parent_body = parent.body - estr = 'Please enter your comment above\n\n> %s\n' \ - % ('\n> '.join(parent_body.splitlines())) + estr = 'Please enter your comment above\n\n%s\n\n> %s\n' \ + % (header, '\n> '.join(parent_body.splitlines())) body = libbe.ui.util.editor.editor_string(estr) except libbe.ui.util.editor.CantFindEditor, e: raise libbe.command.UserError( -- cgit From 2b8718b5453ae8e4ed42687acbb377511c36669a Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Sun, 21 Nov 2010 20:01:24 +0100 Subject: Refrain from committing outstanding changes. This makes be-commit act more like git-commit. --- libbe/storage/vcs/git.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libbe/storage/vcs/git.py b/libbe/storage/vcs/git.py index a442c30..c9f10fe 100644 --- a/libbe/storage/vcs/git.py +++ b/libbe/storage/vcs/git.py @@ -143,7 +143,7 @@ class Git(base.VCS): return output.rstrip('\n').splitlines() def _vcs_commit(self, commitfile, allow_empty=False): - args = ['commit', '--all', '--file', commitfile] + args = ['commit', '--file', commitfile] if allow_empty == True: args.append('--allow-empty') status,output,error = self._u_invoke_client(*args) -- cgit From b64851e3eb706b7b57503a0a605e0984e443747c Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Fri, 26 Nov 2010 08:34:35 +0100 Subject: Exclude --complete from completion. --- libbe/command/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libbe/command/base.py b/libbe/command/base.py index c6337ec..4814a17 100644 --- a/libbe/command/base.py +++ b/libbe/command/base.py @@ -335,7 +335,8 @@ class Command (object): def complete(self, argument=None, fragment=None): if argument == None: - ret = ['--%s' % o.name for o in self.options] + ret = ['--%s' % o.name for o in self.options + if o.name != 'complete'] if len(self.args) > 0 and self.args[0].completion_callback != None: ret.extend(self.args[0].completion_callback(self, argument, fragment)) return ret -- cgit From 7c4eed14652c014f20d78fae6824cfcc84198534 Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Fri, 26 Nov 2010 08:35:13 +0100 Subject: Allow multiple words to be completed at once, eg. for assignees. --- misc/completion/be.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/completion/be.bash b/misc/completion/be.bash index 834bf25..1d3a941 100644 --- a/misc/completion/be.bash +++ b/misc/completion/be.bash @@ -32,7 +32,7 @@ _be() for i in `seq $COMP_CWORD ${#COMP_WORDS[@]}`; do unset COMP_WORDS[$i]; done - COMPREPLY=( $( compgen -W "$(be "${COMP_WORDS[@]}" --complete $cur)" -- $cur ) ) + COMPREPLY=( $( IFS=$'\n' compgen -W "$(be "${COMP_WORDS[@]}" --complete $cur)" -- $cur ) ) fi } -- cgit From 3803b501a79071187324d75efdf1ea9e3437347f Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Fri, 26 Nov 2010 09:46:52 +0100 Subject: Use a clean getattr() instead of eval(). --- libbe/command/list.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libbe/command/list.py b/libbe/command/list.py index 06249a0..f348d5c 100644 --- a/libbe/command/list.py +++ b/libbe/command/list.py @@ -156,7 +156,7 @@ class List (libbe.command.Command): raise libbe.command.UserError( 'Invalid sort on "%s".\nValid sorts:\n %s' % (cmp, '\n '.join(AVAILABLE_CMPS))) - cmp_list.append(eval('libbe.bug.cmp_%s' % cmp)) + cmp_list.append(getattr(libbe.bug, 'cmp_%s' % cmp)) status = parse_status(params['status']) severity = parse_severity(params['severity'], important=params['important']) -- cgit From 5d8e5bf31fa4035d8c45300244432de7d772832e Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Fri, 26 Nov 2010 09:47:46 +0100 Subject: Safeguard List._sort_bugs from accumulating values in its default parameters. --- libbe/command/list.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libbe/command/list.py b/libbe/command/list.py index f348d5c..2611692 100644 --- a/libbe/command/list.py +++ b/libbe/command/list.py @@ -179,7 +179,9 @@ class List (libbe.command.Command): for x in params['extra-strings'].split(',')] return (cmp_list, status, severity, assigned, extra_strings_regexps) - def _sort_bugs(self, bugs, cmp_list=[]): + def _sort_bugs(self, bugs, cmp_list=None): + if cmp_list is None: + cmp_list = [] cmp_list.extend(libbe.bug.DEFAULT_CMP_FULL_CMP_LIST) cmp_fn = libbe.bug.BugCompoundComparator(cmp_list=cmp_list) bugs.sort(cmp_fn) -- cgit From 7729c7f383817599fa3fe75f01addd8afb49a984 Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Fri, 26 Nov 2010 09:48:43 +0100 Subject: Add `mine' sorting criteria showing bugs assigned to yourself first. --- libbe/bug.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libbe/bug.py b/libbe/bug.py index 5361e4a..d0914b4 100644 --- a/libbe/bug.py +++ b/libbe/bug.py @@ -799,6 +799,12 @@ cmp_extra_strings = lambda bug_1, bug_2 : cmp_attr(bug_1, bug_2, "extra_strings" # chronological rankings (newer < older) cmp_time = lambda bug_1, bug_2 : cmp_attr(bug_1, bug_2, "time", invert=True) +def cmp_mine(bug_1, bug_2): + user_id = libbe.ui.util.user.get_user_id(bug_1.storage) + mine_1 = bug_1.assigned != user_id + mine_2 = bug_2.assigned != user_id + return cmp(mine_1, mine_2) + def cmp_comments(bug_1, bug_2): """ Compare two bugs' comments lists. Doesn't load any new comments, -- cgit From 7414bf640d6ff51a1a6b8acf3bae9f330736cb43 Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Fri, 26 Nov 2010 09:49:46 +0100 Subject: Change status on assignment of open bugs. After a bug has been assigned from status `open' it is no longer eligible for that status as described: A working bug that has not been assigned to a developer. --- libbe/command/assign.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libbe/command/assign.py b/libbe/command/assign.py index 7632abf..d6b3e90 100644 --- a/libbe/command/assign.py +++ b/libbe/command/assign.py @@ -84,6 +84,8 @@ class Assign (libbe.command.Command): libbe.command.util.bug_comment_from_user_id(bugdir, bug_id) if bug.assigned != assigned: bug.assigned = assigned + if bug.status == 'open': + bug.status = 'assigned' return 0 def _long_help(self): -- cgit From 73c9f3ebbf945a8a5c1eb398dff1324ffb47ae43 Mon Sep 17 00:00:00 2001 From: Robert Lehmann Date: Fri, 26 Nov 2010 12:56:43 +0100 Subject: Respected all sorting criteria, not only the last. --- libbe/command/list.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libbe/command/list.py b/libbe/command/list.py index 2611692..69715ca 100644 --- a/libbe/command/list.py +++ b/libbe/command/list.py @@ -156,7 +156,7 @@ class List (libbe.command.Command): raise libbe.command.UserError( 'Invalid sort on "%s".\nValid sorts:\n %s' % (cmp, '\n '.join(AVAILABLE_CMPS))) - cmp_list.append(getattr(libbe.bug, 'cmp_%s' % cmp)) + cmp_list.append(getattr(libbe.bug, 'cmp_%s' % cmp)) status = parse_status(params['status']) severity = parse_severity(params['severity'], important=params['important']) -- cgit