Re: [PATCH 3/6] run-command: optimize out useless shell calls

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH 3/6] run-command: optimize out useless shell calls

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:47:57

Johannes Sixt [off-list ref] writes:
to help people set

 PAGER=C:\Program Files\cygwin\bin\less

That is, we first try to run the program without the shell, then retry
wrapped in sh -c.

Wouldn't it be possible to do the same here, assuming that we don't
have programs such as "editor -f" in the path?
It is a cute idea that covers 70-80% of the cases, as you also have to
assume that you don't have to specify your own pager on a path with IFS
(e.g. "Program files" in your example) and give your parameter to the
pager at the same time, e.g.

    PAGER="C:\Program Files\cygwin\bin\less -FRSX"

Because it has its own LESS environment to set FRSX and you can get away
with:

    PAGER="C:\Program Files\cygwin\bin\less"
    LESS=FRSX

"less" is not a representative example for this issue.  In real life I
suspect that custom programs that we don't ship with git (or you don't
ship with msysgit) would lack such a workaround, (and that is why I didn't
say "98% of the cases").

Re: [PATCH 3/6] run-command: optimize out useless shell calls

From: Johannes Sixt <hidden>
Date: 2016-06-15 22:47:57

On Donnerstag, 31. Dezember 2009, Junio C Hamano wrote:
It is a cute idea that covers 70-80% of the cases, as you also have to
assume that you don't have to specify your own pager on a path with IFS
(e.g. "Program files" in your example) and give your parameter to the
pager at the same time, e.g.

    PAGER="C:\Program Files\cygwin\bin\less -FRSX"

Because it has its own LESS environment to set FRSX and you can get away
with:

    PAGER="C:\Program Files\cygwin\bin\less"
    LESS=FRSX

"less" is not a representative example for this issue.  In real life I
suspect that custom programs that we don't ship with git (or you don't
ship with msysgit) would lack such a workaround, (and that is why I didn't
say "98% of the cases").
OTOH, once you see that you would have to set

	PAGER: C:\Program Files\cygwin\bin\less -FRSX

(I'm not using shell syntax here; think of a dialog that has name and value in 
separate edit boxes) then it is rather obvious that this cannot work. If you 
are clever (and you probably are - after all, you are modifying something 
esoteric: the environment!), then you will have heard about the magic 
double-quotes, and you will write this as

	PAGER: "C:\Program Files\cygwin\bin\less" -FRSX

instead, and it will work as intended.

Granted, "less" is not representative.

	GIT_EDITOR: "C:\Program Files\Notepad++\notepad++" -multiInst

is probably more realistic (but I didn't test it).

-- Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help