Re: [PATCH 2/2] Cached the git configuration, which is now noticibly faster on windows.
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Nov 8, 2008, 10:13 UTC
- Message-ID
- <m3mygaeda0.fsf@localhost.localdomain>
- In-Reply-To
- <ee77f5c20811072119y65738f54o7e6792fb405c142c@mail.gmail.com>
"David Symonds" <dsymonds@gmail.com> writes:
Show 18 quoted lines
> On Fri, Nov 7, 2008 at 7:22 PM, John Chapman <thestar@fussycoder.id.au> wrote:
>
> > +_gitConfig = {}
> > def gitConfig(key):
> > - return read_pipe("git config %s" % key, ignore_error=True).strip()
> > + if not _gitConfig.has_key(key):
> > + _gitConfig[key] = read_pipe("git config %s" % key, ignore_error=True).strip()
> > + return _gitConfig[key]
>
> If this is truly a noticeable bottleneck on Windows, something like
> the following might be even better: (completely untested!)
>
> _gitConfig = None
> def gitConfig(key):
> if _gitConfig is None:
> lines = read_pipe("git config -l", ignore_error=True).readlines():
> _gitConfig = dict([l.strip().split('=', 1) for l in lines])
> return _gitConfig.get(key, None)Wouldn't it be better to use "git config -l -z", split lines at "\0" (NUL), and split key from value at first "\N" (CR)? This format was meant for scripts.
-- Jakub Narebski Poland ShadeHawk on #git