Re: jgit and ignore
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Mar 1, 2009, 17:57 UTC
- Message-ID
- <20090301175705.GE14365@spearce.org>
- In-Reply-To
- <49AACB3A.8070809@gmail.com>
Tor Arne Vestbø <torarnv@gmail.com> wrote:
Show 10 quoted lines
> Shawn O. Pearce wrote: > >> Just to be clear, I noticed you left out the global core.excludesfile > >> (from ~/.gitconfig) here. I guess this intentional? > > > > No, I didn't. core.excludesfile is read from the config, the config > > is a union of /etc/gitconfig, ~/.gitconfig, and GIT_DIR/config. The > > last setting wins. > > Ah, I see, I thought each config was read in a separate steps. Thanks > for clearing that up.
Well, they are.
But in git-core the value is pulled into a single static. For a string its often a single static char*. So the config handle function is called up to 3 times for foo.bar, and the last one to be called is the one that finally set the value. They are read in the order I described above, so GIT_DIR/config has a chance to override any prior setting.
In JGit the RepositoryConfig object parses the other direction. Its a more classical "default" pattern, where if GIT_DIR/config doesn't have a foo.bar we call to another instance which had parsed ~/.gitconfig, and so on.
Either way produces the same result.
-- Shawn.