git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 4/5] gitweb: Add a feature for adding more branch refs

From
Krzesimir Nowak <krzesimir@endocode.com>
Date
Dec 5, 2013, 10:00 UTC
Message-ID
<1386237635.2186.22.camel@localhost.localdomain>
In-Reply-To
<CANQwDwe+a2P0Jxqw0k7sHWv3exdb4k+NU3jL3ogR-rcetd82TQ@mail.gmail.com>
On Wed, 2013-12-04 at 19:06 +0100, Jakub Narębski wrote:
Show 48 quoted lines
> On Wed, Dec 4, 2013 at 2:43 PM, Krzesimir Nowak <krzesimir@endocode.com> wrote:
> >
> > Allow extra-branch-refs feature to tell gitweb to show refs from
> > additional hierarchies in addition to branches in the list-of-branches
> > view.
> >
> > Signed-off-by: Krzesimir Nowak <krzesimir@endocode.com>
> > Reviewed-by: Junio C Hamano <gitster@pobox.com>
> > Reviewed-by: Jakub Narębski <jnareb@gmail.com>
> 
> This version is Helped-by (maybe), but not (yet!) Reviewed-by.
> 
> > ---
> >  Documentation/gitweb.conf.txt | 37 +++++++++++++++++++
> >  gitweb/gitweb.perl            | 85 +++++++++++++++++++++++++++++++++++++------
> >  2 files changed, 110 insertions(+), 12 deletions(-)
> >
> > diff --git a/Documentation/gitweb.conf.txt b/Documentation/gitweb.conf.txt
> > index e2113d9..5a77452 100644
> > --- a/Documentation/gitweb.conf.txt
> > +++ b/Documentation/gitweb.conf.txt
> > @@ -849,6 +849,43 @@ time zones in the form of "+/-HHMM", such as "+0200".
> >  +
> >  Project specific override is not supported.
> >
> > +extra-branch-refs::
> > +       List of additional directories under "refs" which are going to
> > +       be used as branch refs. For example if you have a gerrit setup
> > +       where all branches under refs/heads/ are official,
> > +       push-after-review ones and branches under refs/sandbox/,
> > +       refs/wip and refs/other are user ones where permissions are
> > +       much wider, then you might want to set this variable as
> > +       follows:
> > ++
> > +--------------------------------------------------------------------------------
> > +$feature{'extra-branch-refs'}{'default'} =
> > +       ['sandbox', 'wip', 'other'];
> > +--------------------------------------------------------------------------------
> > ++
> > +If overriding was enabled then this feature can be configured on a
> 
> s/was/is/;
> 
> Perhaps it would better read as
> 
>     This feature can be configured on per-repository basis after setting
>     $feature{'extra-branch-refs'}{'override'} to true, via repository's
>     `gitweb.extraBranchRefs` ...

I see that you also insist on using camelCase for config variables. I will rephrase it.

Show 40 quoted lines
> 
> > +per-repository basis via repository's `gitweb.extrabranchrefs`
> > +configuration variable, which contains a space separated list of
> > +refs. An example:
> > ++
> > +--------------------------------------------------------------------------------
> > +[gitweb]
> > +       extrabranchrefs = sandbox wip other
> > +--------------------------------------------------------------------------------
> 
> O.K.
> 
> > ++
> > +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').

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 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.

Show 11 quoted lines
> 
> > ++
> > +It is an error to specify a ref that does not pass "git check-ref-format"
> > +scrutiny. Duplicated values are filtered.
> > +
> 
> Hmmm... 'snapshot' feature ignores invalid values, but in this case
> formerly valid compression schemes might get invalid via tightening
> %known_snapshot_formats, and we don't want existing config getting
> suddenly invalid.
> 
So, should I just ignore the invalid refs or treat them as errors?
> [cut]
> 
> Nice!
> 
-- 
Krzesimir Nowak
Software Developer
Endocode AG

krzesimir@endocode.com

------
Endocode AG, Johannisstraße 20, 10117 Berlin
info@endocode.com | www.endocode.com

Vorstandsvorsitzender: Mirko Boehm
Vorstände: Dr. Karl Beecher, Chris Kühl, Sebastian Sucker
Aufsichtsratsvorsitzende: Jennifer Beecher

Registergericht: Amtsgericht Charlottenburg - HRB 150748 B
Previous: Jakub NarębskiNext: Jakub Narębski
Message 24 of 32 in “Show extra branch refs in gitweb v6”
  1. 0/5 Show extra branch refs in gitweb v6Krzesimir Nowak, Dec 4, 2013
  2. 1/5 gitweb: Add a comment explaining the meaning of $/Krzesimir Nowak, Dec 4, 2013
  3. Jakub NarębskiDec 4, 2013
  4. Krzesimir NowakDec 4, 2013
  5. Martin LanghoffDec 4, 2013
  6. Junio C HamanoDec 4, 2013
  7. Krzesimir NowakDec 5, 2013
  8. Jakub NarębskiDec 4, 2013
  9. Jakub NarębskiDec 4, 2013
  10. 2/5 gitweb: Move check-ref-format code into separate functionKrzesimir Nowak, Dec 4, 2013
  11. Jakub NarębskiDec 4, 2013
  12. Krzesimir NowakDec 5, 2013
  13. Junio C HamanoDec 4, 2013
  14. Krzesimir NowakDec 5, 2013
  15. 3/5 gitweb: Return plain booleans in validation methodsKrzesimir Nowak, Dec 4, 2013
  16. Jakub NarębskiDec 4, 2013
  17. Junio C HamanoDec 4, 2013
  18. Krzesimir NowakDec 5, 2013
  19. Junio C HamanoDec 5, 2013
  20. Jakub NarębskiDec 5, 2013
  21. Junio C HamanoDec 5, 2013
  22. 4/5 gitweb: Add a feature for adding more branch refsKrzesimir Nowak, Dec 4, 2013
  23. Jakub NarębskiDec 4, 2013
  24. Krzesimir NowakDec 5, 2013
  25. Jakub NarębskiDec 5, 2013
  26. Krzesimir NowakDec 10, 2013
  27. Junio C HamanoDec 10, 2013
  28. Jakub NarębskiDec 10, 2013
  29. Junio C HamanoDec 10, 2013
  30. 5/5 gitweb: Denote non-heads, non-remotes branchesKrzesimir Nowak, Dec 4, 2013
  31. Jakub NarębskiDec 4, 2013
  32. Junio C HamanoDec 4, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.