Subject: Re: [PATCH v2 05/11] gitweb: git_split_heads_body function.

From: Jakub Narebski <[email-masked]>
Date: Sun, 16 Nov 2008 13:12:48 +0100

Giuseppe Bilotta wrote:
> On Sat, Nov 15, 2008 at 1:14 PM, Junio C Hamano <[email-masked]> wrote:
>> Jakub Narebski <[email-masked]> writes:
>>
>>> Second, this patch wouldn't do what you want from it if there are
>>> remotes with '/' in name.  I for example use "gsoc2008/gitweb-caching"
>>> for Lea Wiemann repository with her GSoC 2008 work on adding caching
>>> to gitweb.
>>
>> I think your point is if you also use gsoc2008/gitstats from another
>> remote repository, these two sets of remote tracking branches will be
>> shown grouped together.  But is it a bad thing?  After all, you chose to
>> use hierarchical names for them, _and_ you chose to use the same toplevel
>> hierarchy name for them.  Doesn't that mean you _wanted_ to have them both
>> appear in the same GSoC 2008 group?

Actually I _don't_ have 'gsoc2008/gitstats' remote, nor gsoc2008/gitstats/*
remote-tracking branches. 'gsoc2008/gitweb-caching' is the only remote
with hierarchical name. But I digress...

> The problem is that we have gsoc2008/gitweb-caching/branch1
> gsoc2008/gitweb-caching/branch2 gsoc2008/gitstats/branch3
> gsoc2008/gitstats/branch3, and my current code would show
> gitweb-caching/branch1, gitweb-caching/branch2 etc under gsoc2008.

I'm not sure if it wouldn't be simpler solution to just code _sorting_
heads-like view ('heads', 'remotes', 'tags') by ref name, or by age.
It would be best to have both, even...

Even without dividing 'remotes' view into subcategories (and
subsubcategories) you would have natural grouping:

 gsoc2008/gitweb-caching/branch1
 gsoc2008/gitweb-caching/branch2
 gsoc2008/gitstats/branch3
 gsoc2008/gitstats/branch4

if sorted by branch (ref) name, and not (possibly)

 gsoc2008/gitweb-caching/branch1
 gsoc2008/gitstats/branch4
 origin/todo
 gsoc2008/gitweb-caching/branch2
 gsoc2008/gitstats/branch3

when sorted by age (hmmm... committerdate or authordate?)

> Having branch1 and branch2 under gsoc2008/gitweb-caching, and branch3
> and branch4 under gsoc2008/gitstats would be more logical,
> remote-wise, but it would of course lose the coupling between all the
> gsoc2008 remotes.
> 
> If deep nesting is not a problem, I can code something to have
> gitweb-caching and gistats under gsoc2008, and the respective branches
> within.

The problems with nesting is those pesky remotes with only single
tracked branch to them; they are I think quote common... well, unless
you do one-shot pull, directly into local branch.

All that said, splitting 'remotes' section is difficult; using first
dirname as section is probably easiest, and good enough in most cases.
That is why I think this part should be put into separate series, to
not hinder rest of patches.

-- 
Jakub Narebski
Poland