Subject: Re: [PATCH] git.el: Only show completions from refs/heads, refs/remotes and refs/tags

From: David Kågedal <[email-masked]>
Date: Tue, 24 Feb 2009 09:39:42 +0100

David Kågedal <[email-masked]> writes:

> Otherwise it will pick up e.g. lots of irrelevant stuff from
> refs/bisect, refs/stash or refs/patches (for StGit users).
>
> Signed-off-by: David Kågedal <[email-masked]>
> ---
>  contrib/emacs/git.el |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/contrib/emacs/git.el b/contrib/emacs/git.el
> index feb229c..125e684 100644
> --- a/contrib/emacs/git.el
> +++ b/contrib/emacs/git.el
> @@ -1388,7 +1388,10 @@ With a prefix arg, diff the marked files instead."
>  (defun git-read-commit-name (prompt &optional default)
>    "Ask for a commit name, with completion for local branch, remote branch and tag."
>    (completing-read prompt
> -                   (list* "HEAD" "ORIG_HEAD" "FETCH_HEAD" (mapcar #'car (git-for-each-ref)))
> +                   (list* "HEAD" "ORIG_HEAD" "FETCH_HEAD"

Sorry, I didn't check this properly. I thought I was fixing inside the
git-checkout function, but this is git-read-commit-name which is used
in more than one place.

But for git-checkout, I would like to see a much shorter list of named
commits, namely those that can be called "branches". I'll come up with
a better patch.

> +                          (mapcar #'car (git-for-each-ref "refs/heads"
> +                                                          "refs/remotes"
> +                                                          "refs/tags")))
>  		   nil nil nil nil default))
>  
>  (defun git-checkout (branch &optional merge)

-- 
David Kågedal