On Tue, Jul 22, 2008 at 12:41:57AM -0400, Jeff King wrote:
Show 37 quoted lines
> On Mon, Jul 21, 2008 at 07:40:28PM -0700, Junio C Hamano wrote:
>
> > Actually, the situation is now even worse than I originally thought
> > especially with Jeff's pager.<cmd> patch on 'master' recently. For
> > example, you can screw yourself quite badly by forcing diff-files used in
> > the scripts you run to page, defeating --exit-code option. Which means
>
> Actually, you could _always_ do that with "git -p diff-files". Which is
> obviously stupid, just as setting pager.diff-files is. In the reported
> case, though, "status" is broken, which we now do by default. So no
> stupidity required.
>
> > (2) Then why are we even allowing to configure the plumbing to page?
>
> 1. Laziness. We just never marked which shouldn't be allowed to page.
> But again, in this case, we have explicitly marked status as "this
> should page" so I don't think this is a plumbing / porcelain thing.
> Status fulfills both roles here (some people want it paged, because
> they use it as porcelain, and some people want the exit code).
>
> 2. We don't always know all git commands. We execute user scripts as
> "git foo", but we don't know what they do. Worse than that, we have
> to commit our pager choice early because we might be exec'ing (but
> this is somewhat of an artifact of the way the code is structured,
> and not necessarily an impossible obstacle).
>
> > Should we maintain a table of commands that we allow paging to be
> > customized, and ignore pager.<cmd> for commands that are not in the list?
>
> The patch below sets up the infrastructure, which is trivial. Note that
> this _doesn't_ handle the case of "git -p status", because we have to
> commit that choice at a different time (again, we might be able to
> overcome that with a little code restructuring).
>
> This marks diff-files as FORBID_PAGER; I will leave it to others to
> fight about which commands should have it. But it doesn't make sense to
> mark "status" since some people obviously _want_ the paging there.