On 26/01/07, Yann Dirson <ydirson@xxxxxxxxxx> wrote:
On Fri, Jan 26, 2007 at 12:58:38AM +0100, Johannes Schindelin wrote: > On Thu, 25 Jan 2007, Catalin Marinas wrote: > > The dictionary should also be pre-populated with the default values > > (only in memory, not going to the config file on disk). Pre-filling with default value has a drawback: it will create lots of useless entries, especially for per-branch settings. I'd rather let the accessors return the default value when needed. We can still group all defaults in a single dictionnary.
What I meant is that it should pre-fill only with the default entries needed by StGIT (probably around 10, see stgit.config.config_setup()). The rest should be filled in when reading the config files.
> The most important point (to me) which came out of the discussion: It is > not at all easy, or straight-forward, to handle multi-vars, i.e. multiple > values for the same key. Right, at least for filling a dictionnary. We would need to declare multi-valued parameters as such, which basically means we must only try to read those config items we know about, which has all sorts of consequences for config.py :)
But are multi-vars in the same file currently used? There is a clear situation when a key is written in both the global and the per-repository config files. From the StGIT point of view, it should only care about the most specific one, i.e. the one in the per-repo config and this would be the last one listed by git-repo-config (and therefore overriding any preceding dictionary entry).
It would seem reasonable to start without a cache dictionnary, at least for now. After all, there are not so many config items to know about in a single stgit run, so IIMHO we're only going to notice a difference for the time needed to run the testsuite.
I'd like to avoid calling git-repo-config for every config option, even if this wouldn't be noticeable (initially, but the tool would evolve). If we don't care about multi-vars, as I said above, a dictionary cache would make sense. -- Catalin - 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