Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: PATCH: _git log arguments
- X-seq: zsh-workers 23888
- From: "Nikolai Weibull" <now@xxxxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: Re: PATCH: _git log arguments
- Date: Mon, 1 Oct 2007 15:56:43 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; bh=r+KnqiKCm0FPIJHks2N7TvaWdOQqN2ye+SUQBpuaAkM=; b=jvhlsRIaayWh+uhtSBEVgqTBZRDtkWXGONbFRWr7K+P6jMAqrn3z6FxaGVgjXK4TJK78x1lhA+tY79Hnaup08+0K2OLt3r1/WQ6nsLB9nNmdSh7N9RGlZBgXrJHCpKhEbKTNUVKr/TAQ6MxrXYm3t2LUtHOLH1jX7svi8jq9TyU=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:sender:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; b=Mt/oTAxHoVI1hsN74WP3tPqgUSO3BreCpf2PcS9ROIUWYqW3L9oSKZnIRKKi9KPOT/YZcVSfDlVw+2oFjLUP9AEbVA5JLBiDfHE++NfK4utteebPuH9MPkynsMzJgVGDlQUxjxKhjjJCDG9FVEpSEeXWa1Hsndl11ZG2VUMr79Y=
- In-reply-to: <20071001133635.GA10543@xxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <20070930194014.GA18558@xxxxxxxxxxx> <dbfc82860710010016y4770a963k5e8a3c088f8cc7a1@xxxxxxxxxxxxxx> <20071001133635.GA10543@xxxxxxxxxxx>
- Sender: nikolai.weibull@xxxxxxxxx
On 10/1/07, Clint Adams <clint@xxxxxxx> wrote:
> On Mon, Oct 01, 2007 at 09:16:54AM +0200, Nikolai Weibull wrote:
> > Why use "$revision_arguments[@]"? $revision_arguments works just as
> > good and you don't need all the quoting and expansion fluff. I see
> > this style has been used for $merge_args as well, even though most of
> > the file doesn't.
>
> I seem to recall it being necessary for $merge_args, though I don't
> recall the specifics.
>
> > > + '*:tree-ish: _alternative c\:\:__git_committishs f\:\:_files' && ret=0
> >
> > I don't like this at all. Why not simply use __git_cached_files? And
> > if we really need __git_committishs, let's at least use a separate
> > function for that with proper descriptions and tags.
>
> Your patch reworked against HEAD is below. Now how do we accommodate
> the people that want to have a branch name completed after git log?
This should really be context sensitive, that is, what to complete
here is dependent on what arguments we've seen already.
Here's a patch that will suffice for the time being:
Index: Completion/Unix/Command/_git
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_git,v
retrieving revision 1.37
diff -u -r1.37 _git
--- Completion/Unix/Command/_git 1 Oct 2007 13:37:31 -0000 1.37
+++ Completion/Unix/Command/_git 1 Oct 2007 13:55:53 -0000
@@ -1702,11 +1702,22 @@
(( $+functions[_git-log] )) ||
_git-log () {
+ local curcontext=$curcontext state line
+ declare -A opt_args
+
__git_setup_revision_arguments
_arguments -S \
$revision_arguments \
- '*:file:__git_cached_files' && ret=0
+ '*:file-or-branch:->files' && ret=0
+
+ case $state in
+ (files)
+ _alternative \
+ 'files:index file:__git_cached_files' \
+ 'branches:branch:__git_branch_names' && ret=0
+ ;;
+ esac
}
# TODO: repository needs fixing
nikolai
Messages sorted by:
Reverse Date,
Date,
Thread,
Author