* [PATCH] git.el: Set process-environment instead of invoking env (follow-up 1)
@ 2008-04-18 13:07 Clifford Caoile
2008-04-18 13:34 ` David Kågedal
0 siblings, 1 reply; 2+ messages in thread
From: Clifford Caoile @ 2008-04-18 13:07 UTC (permalink / raw)
To: Git Mailing List, David Kågedal, Git Maintainer
According to the similar patch from David Kågedal [1], "this will make
it a little less posix-dependent and more efficient." However, there
are two other areas that need to replaced, namely
git-run-command-region and git-run-hooks. This patch implements the
changes of [1] onto those Emacs Lisp functions.
If unpatched, using the git port "msysgit" on Windows will require
defadvice changes as shown at [2] (also explained at 4msysgit.git
[3]).
I have tested git-run-command-region on msysgit, because this is
always called by git-commit (via git-commit-tree <- git-do-commit <-
git-commit-file). However, I could not test git-run-hooks because it
currently does not work on the Emacs Windows port. The latter reports
the hooks files as a+rw and a-x, despite msysgit and cygwin chmod
setting on the respective files.
References:
[1] f27e55864317611385be4d33b3c53ca787379df9
[2] http://groups.google.com/group/msysgit/browse_thread/thread/b852fef689817707
[3] http://repo.or.cz/w/git/mingw/4msysgit.git?a=commit;h=3c30e5e87358eba7b6d7dcd6301ae8438f0c30ea
Signed-off-by: Clifford Caoile <piyo@users.sourceforge.net>
---
contrib/emacs/git.el | 11 ++++-------
1 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/contrib/emacs/git.el b/contrib/emacs/git.el
index 4fa853f..2557a76 100644
--- a/contrib/emacs/git.el
+++ b/contrib/emacs/git.el
@@ -232,10 +232,8 @@ and returns the process output as a string, or
nil if the git failed."
(defun git-run-command-region (buffer start end env &rest args)
"Run a git command with specified buffer region as input."
- (unless (eq 0 (if env
- (git-run-process-region
- buffer start end "env"
- (append (git-get-env-strings env) (list "git") args))
+ (unless (eq 0 (let ((process-environment (append (git-get-env-strings env)
+ process-environment)))
(git-run-process-region
buffer start end "git" args)))
(error "Failed to run \"git %s\":\n%s" (mapconcat (lambda (x) x)
args " ") (buffer-string))))
@@ -250,9 +248,8 @@ and returns the process output as a string, or nil
if the git failed."
(erase-buffer)
(cd dir)
(setq status
- (if env
- (apply #'call-process "env" nil (list buffer t) nil
- (append (git-get-env-strings env) (list
hook-name) args))
+ (let ((process-environment (append (git-get-env-strings env)
+ process-environment)))
(apply #'call-process hook-name nil (list buffer
t) nil args))))
(display-message-or-buffer buffer)
(eq 0 status)))))
--
1.5.5.1015.g9d258
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] git.el: Set process-environment instead of invoking env (follow-up 1)
2008-04-18 13:07 [PATCH] git.el: Set process-environment instead of invoking env (follow-up 1) Clifford Caoile
@ 2008-04-18 13:34 ` David Kågedal
0 siblings, 0 replies; 2+ messages in thread
From: David Kågedal @ 2008-04-18 13:34 UTC (permalink / raw)
To: Git Maintainer, Git Mailing List, piyo
"Clifford Caoile" <piyo@users.sourceforge.net> writes:
> According to the similar patch from David Kågedal [1], "this will make
> it a little less posix-dependent and more efficient." However, there
> are two other areas that need to replaced, namely
> git-run-command-region and git-run-hooks. This patch implements the
> changes of [1] onto those Emacs Lisp functions.
Of course. Silly that I missed them.
--
David Kågedal
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-04-18 13:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-18 13:07 [PATCH] git.el: Set process-environment instead of invoking env (follow-up 1) Clifford Caoile
2008-04-18 13:34 ` David Kågedal
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).