From: Felipe Contreras Date: Sun, 29 Nov 2009 11:38:23 GMT Subject: Re: [PATCH] grep: --full-tree Message-ID: <94a0d4530911290338h459dd5a2p4752f7d58c455964@mail.gmail.com> In-Reply-To: <20091125232210.GA15538@coredump.intra.peff.net> On Thu, Nov 26, 2009 at 1:22 AM, Jeff King wrote: > Probably we would want something flexible, but with sane defaults. Like > an environment variable to ignore all (or most) config options, but then > the ability to opt into specific ones. Something like: > >  GIT_PLUMBING=1; export GIT_PLUMBING >  git log ;# does not respect any non-plumbing config >  git --respect='log.showroot' ;# respect just the one variable >  git --respect='color.*' log ;# you get all color > > But there are two big obstacles (besides the obvious issue that > introducing this in itself needs a gentle transition plan): > >  1. We need to annotate every config option with whether it is >     potentially problematic. For example, core.filemode should probably >     be respected no matter what (but I'm not sure if it is simply true >     for core.*). > >  2. Script writers need to actually use the system, which is somewhat >     more verbose and annoying than what they have to do now. But at >     least it defaults to safety when they are lazy, and then they can >     re-add options. Of course, they are stuck on an upgrade treadmill >     of analyzing and approving each new option that appears in git. +1 on this. This would make it easier to add options in the future that would be potentially dangerous to scripts otherwise. But more than "non-plumbing" I would rather define these variables as *preferences*; things that are not essential to the proper functioning of git commands, and would vary from user to user. -- Felipe Contreras