From: Matthieu Moy <Matthieu.Moy@imag.fr>
To: "Karl Hasselström" <kha@treskal.com>
Cc: Alexandre Julliard <julliard@winehq.org>, git@vger.kernel.org
Subject: Re: [RFH PATCH] Teach the emacs git mode about core.excludesfile
Date: Tue, 31 Jul 2007 03:58:23 +0200 [thread overview]
Message-ID: <vpqzm1dqqps.fsf@bauges.imag.fr> (raw)
In-Reply-To: <20070731011100.23561.27554.stgit@yoghurt> ("Karl Hasselström"'s message of "Tue\, 31 Jul 2007 03\:13\:50 +0200")
Karl Hasselström <kha@treskal.com> writes:
> If there is a core.excludesfile option specified, let the emacs git
> mode take exclude patterns from that file, since that's what the docs
> say, and what everyone else is already doing.
>
> Signed-off-by: Karl Hasselström <kha@treskal.com>
> ---
>
> This is a Request For Help. The patch works, but is clearly the work
> of someone who is not very fluent in elisp. Just look at all that
> duplicated code I've introduced!
>
> contrib/emacs/git.el | 19 ++++++++++++++++---
> 1 files changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/contrib/emacs/git.el b/contrib/emacs/git.el
> index 53dd703..357e6d2 100644
> --- a/contrib/emacs/git.el
> +++ b/contrib/emacs/git.el
> @@ -589,6 +589,13 @@ Return the list of files that haven't been handled."
> (when node (push (ewoc-data node) unmerged-files))))
> (git-set-files-state unmerged-files 'unmerged))))
>
> +(defun git-core-excludesfile ()
> + "The file core.excludesfile, or nil if it isn't specified."
> + (let ((fn (git-config "core.excludesfile")))
> + (if (and fn (file-readable-p fn))
> + fn
> + nil)))
> +
> (defun git-update-status-files (files &optional default-state)
> "Update the status of FILES from the index."
> (unless git-status (error "Not in git-status buffer."))
> @@ -600,9 +607,15 @@ Return the list of files that haven't been handled."
> (git-run-ls-unmerged status files)
> (when (and (or (not files) remaining-files)
> (file-readable-p ".git/info/exclude"))
> - (setq remaining-files (git-run-ls-files status remaining-files
> - 'unknown "-o" "--exclude-from=.git/info/exclude"
> - (concat "--exclude-per-directory=" git-per-dir-ignore-file))))
What you're looking for probably looks like that:
(let ((ce (git-core-excludesfile)))
(setq remaining-files (apply 'git-run-ls-files
`(,status ,remaining-files
unknown "-o" ... ,@(when ce
(list ce))))))
(the magic is in the backquote and the ,@ in `(... ,@(...)))
(totally untested, probably bogus)
--
Matthieu
next prev parent reply other threads:[~2007-07-31 1:58 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-31 1:13 [RFH PATCH] Teach the emacs git mode about core.excludesfile Karl Hasselström
2007-07-31 1:58 ` Matthieu Moy [this message]
2007-07-31 10:36 ` Alexandre Julliard
2007-07-31 19:57 ` Karl Hasselström
-- strict thread matches above, loose matches on Subject: below --
2007-07-31 1:30 Karl Hasselström
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=vpqzm1dqqps.fsf@bauges.imag.fr \
--to=matthieu.moy@imag.fr \
--cc=git@vger.kernel.org \
--cc=julliard@winehq.org \
--cc=kha@treskal.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.