git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
David Kågedal <davidk@lysator.liu.se>
Date
Feb 24, 2009, 15:40 UTC
Message-ID
<871vtnvo55.fsf@krank.kagedal.org>
In-Reply-To
<87ocwrx527.fsf@wine.dyndns.org>
Alexandre Julliard <julliard@winehq.org> writes:
Show 12 quoted lines
> David Kågedal <davidk@lysator.liu.se> writes:
>
>> 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.
>
> I think it's reasonable to do this for the other uses of
> git-read-commit-name too, so your original patch looks OK.

Actually, I'd like to go one step further. I'm only interested in branches, and only in branches I can commit to. So only asking for refs/heads seems the best solution.

And the default parameter to git-read-commit-name is never used, so I removed it.

And completing-read works fine with an alist, so the mapcar isn't nedded any more.

Here is an updated patch:
From: David Kågedal <davidk@lysator.liu.se>
Subject: [PATCH] git.el: Only show completions from refs/heads
Signed-off-by: David Kågedal <davidk@lysator.liu.se>
---
 contrib/emacs/git.el |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/contrib/emacs/git.el b/contrib/emacs/git.el
index feb229c..d4f8710 100644
--- a/contrib/emacs/git.el
+++ b/contrib/emacs/git.el
@@ -1385,11 +1385,9 @@ With a prefix arg, diff the marked files instead."
         (push (match-string 1) files)))
     files))
 
-(defun git-read-commit-name (prompt &optional default)
+(defun git-read-commit-name (prompt)
   "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)))
-		   nil nil nil nil default))
+  (completing-read prompt (git-for-each-ref "refs/heads")))
 
 (defun git-checkout (branch &optional merge)
   "Checkout a branch, tag, or any commit.
-- 
1.6.2.rc1.21.gda6d



-- 
David Kågedal
Previous: Alexandre JulliardNext: Alexandre Julliard
Message 5 of 12 in “git.el: Only show completions from refs/heads, refs/remotes and refs/tags”
  1. git.el: Only show completions from refs/heads, refs/remotes and refs/tagsDavid Kågedal, Feb 24, 2009
  2. David KågedalFeb 24, 2009
  3. David KågedalFeb 24, 2009
  4. Alexandre JulliardFeb 24, 2009
  5. David KågedalFeb 24, 2009
  6. Alexandre JulliardFeb 24, 2009
  7. David KågedalFeb 24, 2009
  8. Alexandre JulliardFeb 24, 2009
  9. git.el: Only show completions from refs/headsDavid Kågedal, Feb 24, 2009
  10. Alexandre JulliardMar 1, 2009
  11. David KågedalMar 2, 2009
  12. Alexandre JulliardMar 3, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.