Git development
 help / color / mirror / Atom feed
From: "SZEDER Gábor" <szeder@ira.uka.de>
To: Ramkumar Ramachandra <artagnon@gmail.com>
Cc: Git List <git@vger.kernel.org>, Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH] completion: add completer for status
Date: Fri, 28 Jun 2013 13:26:31 +0200	[thread overview]
Message-ID: <20130628112631.GC16562@goldbirke> (raw)
In-Reply-To: <20130628105601.GB16562@goldbirke>

On Fri, Jun 28, 2013 at 12:56:01PM +0200, SZEDER Gábor wrote:
> On Fri, Jun 28, 2013 at 12:29:36PM +0200, SZEDER Gábor wrote:
> > On Mon, Jun 24, 2013 at 10:52:55PM +0530, Ramkumar Ramachandra wrote:
> > > Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
> > > +	__git_complete_index_file
> > 
> > With or without this change we can't ask for the status of a certain
> > deleted file:
> > 
> > $ git rm version.h
> > rm 'version.h'
> > $ git status 
> > # On branch master
> > # Changes to be committed:
> > #   (use "git reset HEAD <file>..." to unstage)
> > #
> > #       deleted:    version.h
> > #
> > $ git status v<TAB>
> > varint.c   varint.h   vcs-svn/   version.c  
> 
> Well, at least the deleted is there if I only remove it from the work
> tree (i.e. use 'rm' instead of 'git rm'):
> 
> $ rm version.h
> $ git status
> # On branch master
> # Changes not staged for commit:
> #   (use "git add/rm <file>..." to update what will be committed)
> #   (use "git checkout -- <file>..." to discard changes in working
> #   directory)
> #
> #       deleted:    version.h
> #
> no changes added to commit (use "git add" and/or "git commit -a")
> $ git status v<TAB>
> varint.c   varint.h   vcs-svn/   version.c  version.h  

Ok, how about this on top?


diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 912fb988..b68024c6 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1697,6 +1697,8 @@ _git_stage ()
 
 _git_status ()
 {
+	__git_has_doubledash && return
+
 	case "$cur" in
 	--untracked-files=*)
 		__gitcomp "no normal all" "" "${cur##--untracked-files=}"
@@ -1718,7 +1720,7 @@ _git_status ()
 		return
 		;;
 	esac
-	__git_complete_index_file
+	__git_complete_index_file "--with-tree=HEAD --cached --deleted"
 }
 
 __git_config_get_set_variables ()


In my cursory testing it seemed to do the right thing for deleted and
tracked files:

$ rm version.h
$ git rm version.c
rm 'version.c'
$ echo >varint.h
$ echo >v-added
$ git add v-added 
$ echo >v-untracked
$ git status 
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   v-added
#       deleted:    version.c
#
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working
#   directory)
#
#       modified:   varint.h
#       deleted:    version.h
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       v-untracked
$ git status v
v-added    varint.c   varint.h   vcs-svn/   version.c  version.h

Note, however, that this doesn't offer untracked files (Ram's original
didn't do that either), but in case somebody really needs that he can
have it by using '--':

$ git status -- v
v-added      varint.c     varint.h     vcs-svn/     v-untracked


Best,
Gábor

  reply	other threads:[~2013-06-28 11:26 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-24 17:22 [PATCH] completion: add completer for status Ramkumar Ramachandra
2013-06-24 17:28 ` Ramkumar Ramachandra
2013-06-28 10:29 ` SZEDER Gábor
2013-06-28 10:56   ` SZEDER Gábor
2013-06-28 11:26     ` SZEDER Gábor [this message]
2013-06-28 13:20       ` Ramkumar Ramachandra
2013-06-28 14:03         ` Ramkumar Ramachandra
2013-06-30 11:00           ` SZEDER Gábor
2013-06-28 14:04         ` SZEDER Gábor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130628112631.GC16562@goldbirke \
    --to=szeder@ira.uka.de \
    --cc=artagnon@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox