On Thu, Dec 5, 2013 at 11:00 AM, Krzesimir Nowak <krzesimir@xxxxxxxxxxxx> wrote: > On Wed, 2013-12-04 at 19:06 +0100, Jakub Narębski wrote: >> On Wed, Dec 4, 2013 at 2:43 PM, Krzesimir Nowak <krzesimir@xxxxxxxxxxxx> wrote: >>> +The gitweb.extrabranchrefs is actually a multi-valued configuration >>> +variable, so following example is also correct and the result is the >>> +same as of the snippet above: >>> ++ >>> +-------------------------------------------------------------------------------- >>> +[gitweb] >>> + extrabranchrefs = sandbox >>> + extrabranchrefs = wip other >>> +-------------------------------------------------------------------------------- >> >> I think this part should be better left for a separate patch. There is >> important difference between single-valued and multi-valued configuration >> variable: with single-valued later occurrences override earlier ones, >> which includes settings in more specific config file (e.g. per-repository) >> overriding setting in more general one (e.g. per-user or system-wide). >> >> With multi-valued we won't be able to override earlier / more generic >> settings... well, unless we add support for no-value, or empty-value >> as clearer, i.e. >> >> [gitweb] >> extrabranchrefs = sandbox >> extrabranchrefs >> # or extrabranchrefs = >> extrabranchrefs = wip other >> >> resulting in ('wip', 'other'). What I didn't notice is that gitweb already supports and *uses* multi-value configuration variables: gitweb.url and gitweb.ctag (note: the feature is called 'ctags' and is not overridable), though not for %feature-s. So the point is moot, sorry for distraction. BTW. there is config_to_multi() subroutine that you can use. > That point in this example is a bit moot IMO - if you don't want sandbox > ref to appear in list of branches view then just delete the offending > line. I was thinking about more complicated situation: if you have gitweb configured in "scan for repositories" mode (like mod_homedir), then repository owner may change gitweb configuration for own repository via repo config file. But gitweb reads also web server user config file and system wide git config file (/etc/gitconfig). If gitweb.extraBranchRefs is set in one of those files, repo owner cannot override, but only add to it. But I think this is worrying about nothing. I'm sorry for distraction. > I also made a small experiment. In per-instance config I have > $feature{'extra-branch-refs'}{'default'} = ['wip']; > $feature{'extra-branch-refs'}{'override'} = 1; > > In per-repository config I have: > [gitweb] > extrabranchrefs = sandbox > extrabranchrefs = other > > List of branches view shows only branches from sandbox and other. So > clearly per-repository config overrides per-instance config. That's why is called 'override'... but it is not what I was worrying about, see above. -- Jakub Narebski -- 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