Re: [PATCH 5/5] run-command: Error out if interpreter not found
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Jan 27, 2012, 09:41 UTC
- Message-ID
- <20120127094145.GA2611@burratino>
- In-Reply-To
- <CAH6sp9O7P8bmYA66fY754mn=ogp8OP1i3KQuE_hnrTY46nNAxw@mail.gmail.com>
Frans Klaver wrote:
> Just for my understanding: before a command is executed, a pager > (less/more or so) is started? We want to avoid starting the pager if > we won't be able to execute the command?
See [1] for an example of a recent patch touching the relevant code path.
For example: if I run "git --paginate foo", foo is an alias for bar, and the "[pager] bar" configuration is set to point to "otherpager", then without this safety git launches the default pager in preparation for running git-foo, receives ENOENT from execvp("git-foo"), and then the pager has already been launched and it is too late to launch otherpager instead.
> On Fri, Jan 27, 2012 at 9:48 AM, Jonathan Nieder <jrnieder@gmail.com> wrote:
>> I want to like (b), but the downside seems unacceptable. > > The downside being: having to figure out what execvp is going to do? > That would be tantamount to writing your own execvp.
Exactly.
Show 7 quoted lines
>> I honestly >> don't know if something like (a) would be a good idea if well >> executed, so I was happy to have the opportunity to try to help >> massage these patches into a form that would make the answer more >> obvious. > > Given the above information, I'm happy to work on this
I see.
Well, as I said, I don't know. :) And I don't want to give false hopes --- it's perfectly possible and not even unlikely that this is a dead end and any patch in this direction will turn out not to be a good idea and not applied.
That's part of why I was really grateful to Hannes for the reminder to take a step back for a moment and consider whether it's worth it. Maybe there's another way or a more targetted way to take care of the motivational original confusing scenario that leads to execvp errors. (By the way, can you remind me which one that was?)
Jonathan
[1] http://thread.gmane.org/gmane.comp.version-control.git/179635