On Tue, Jul 22, 2008 at 12:41:57AM -0400, Jeff King wrote: > 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. Why not "simply" forbid the pager when output is not a terminal ? Mike -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html