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

Re: [PATCH 7/7] gitweb: group remote heads

From
Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date
Sep 22, 2010, 09:34 UTC
Message-ID
<AANLkTimn3EfW3ZAZWeAoq7Jv5c4Hu5LM0K7UeE41Si-Z@mail.gmail.com>
In-Reply-To
<201009221034.10958.jnareb@gmail.com>
On Wed, Sep 22, 2010 at 10:34 AM, Jakub Narebski <jnareb@gmail.com> wrote:
Show 37 quoted lines
> On Mon, Sep 20, 2010, Giuseppe Bilotta wrote:
>> On Mon, Sep 20, 2010 at 10:59 AM, Jakub Narebski <jnareb@gmail.com> wrote:
>>> Giuseppe Bilotta wrote:
>>>> On Mon, Sep 20, 2010 at 1:02 AM, Jakub Narebski <jnareb@gmail.com> wrote:
>
>>>>> The solution (1) i.e. limiting number of remote heads per remote, with
>>>>> or without limiting number of remotes behaves, as you wrote, most
>>>>> similarly to other components of 'summary' view.  On the other hand
>>>>> with large number of remotes, and large number of remote heads in those
>>>>> remotes it might be too large for a *summary* view.
>>>>
>>>> So you maintain that limiting the amount of data in summary view
>>>> should be primary wrt to limiting the amount of time?
>>>
>>> Well, what really affect gitweb performance is calling git commands, both
>>> because of fork overhead, and because it means disk access (and gitweb
>>> performance from what I have heard is affected mainly by IO, and not CPU).
>>> With grouping (displaying remotes) the difference between displaying
>>> remote-tracking branches (or information from them) and not displaying
>>> them is an argument to git-for-each-ref.  So I don't think it would
>>> affect performance much.
>>
>> Getting the list of remote branches is, I would say, the most
>> IO-intensive operation. I'm not sure how much I/O it would do though,
>> even with a large number of remotes and heads. So maybe always gather
>> all the information is the way to go.
>
> Well, that depends on the number of remote-tracking branches, and whether
> those refs are packed (see git-pack-refs).  But I agree that getting list
> of all remote branches might be I/O hit... though I am not sure if it
> would be large enough to visibly affect gitweb performance.
>
> By the way, besides the solution described below (list only remotes if
> there are many of them), we could make 'remote_heads' be not simply
> boolean, but to be multiple-choice feature, configuring how 'remotes'
> view and remotes section in 'summary' page looks like.  But that might
> be overengineering.

A config option for maximum number of remotes and maximum number of heads per remotes (in summary) with sane defaults (16/16?) maybe?

Show 5 quoted lines
>> What I had in mind was something that is very easy to implement with
>> CSS only.
>
> Do I understand correctly that you would utilize ':hover' pseudoclass
> and 'display: none;' style?  How ergonomic would this solution be?

That was my idea, yes. It _can_ get a little confusing without CSS3 transitions, due to the 'flash roll down' of the remote heads list. I will try to cook up a preview sometime this week.

Show 10 quoted lines
>>> P.S. It is not necessary for this series, but I think we should think
>>> about "single remote" view... also because your code currently links
>>> to such views, which do not exist yet (remotes/<remote> in path_info:
>>> how it would be represented in CGI query format?).
>>
>> Maybe pass the remote name as head parameter?
>
> In the meantime, while we don't have 'remote' view for a single remote
> (something like "git remote show"), it would be good if the header for
> individual remotes didn't lead to "'remotes/<remote>' action".
True. I'll fix that for the next rehash.
-- 
Giuseppe "Oblomov" Bilotta
Previous: Jakub NarebskiNext: Jakub Narebski
Message 40 of 42 in “gitweb: allheads feature”
  1. 0/7 gitweb: allheads featureGiuseppe Bilotta, Sep 16, 2010
  2. 1/7 gitweb: introduce remote_heads featureGiuseppe Bilotta, Sep 16, 2010
  3. Jakub NarebskiSep 16, 2010
  4. Giuseppe BilottaSep 17, 2010
  5. 2/7 gitweb: git_get_heads_list accepts an optional list of refs.Giuseppe Bilotta, Sep 16, 2010
  6. Jakub NarebskiSep 16, 2010
  7. Giuseppe BilottaSep 17, 2010
  8. 3/7 gitweb: separate heads and remotes listsGiuseppe Bilotta, Sep 16, 2010
  9. Ævar Arnfjörð BjarmasonSep 16, 2010
  10. Giuseppe BilottaSep 16, 2010
  11. Jakub NarebskiSep 16, 2010
  12. Ævar Arnfjörð BjarmasonSep 16, 2010
  13. Jakub NarebskiSep 16, 2010
  14. 4/7 gitweb: link heads and remotes viewGiuseppe Bilotta, Sep 16, 2010
  15. Jakub NarebskiSep 16, 2010
  16. Giuseppe BilottaSep 17, 2010
  17. 5/7 gitweb: auxiliary functions to group dataGiuseppe Bilotta, Sep 16, 2010
  18. Ævar Arnfjörð BjarmasonSep 16, 2010
  19. Jakub NarebskiSep 17, 2010
  20. Giuseppe BilottaSep 17, 2010
  21. Jakub NarebskiSep 17, 2010
  22. Giuseppe BilottaSep 17, 2010
  23. Jakub NarebskiSep 17, 2010
  24. Giuseppe BilottaSep 18, 2010
  25. 6/7 gitweb: group stylingGiuseppe Bilotta, Sep 16, 2010
  26. Jakub NarebskiSep 17, 2010
  27. Giuseppe BilottaSep 17, 2010
  28. Jakub NarebskiSep 17, 2010
  29. 7/7 gitweb: group remote headsGiuseppe Bilotta, Sep 16, 2010
  30. Ævar Arnfjörð BjarmasonSep 16, 2010
  31. Giuseppe BilottaSep 16, 2010
  32. Jakub NarebskiSep 17, 2010
  33. Jakub NarebskiSep 17, 2010
  34. Giuseppe BilottaSep 19, 2010
  35. Jakub NarebskiSep 19, 2010
  36. Giuseppe BilottaSep 20, 2010
  37. Jakub NarebskiSep 20, 2010
  38. Giuseppe BilottaSep 20, 2010
  39. Jakub NarebskiSep 22, 2010
  40. Giuseppe BilottaSep 22, 2010
  41. Jakub NarebskiSep 16, 2010
  42. Giuseppe BilottaSep 17, 2010

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.