Subject: Re: [RFC] gitweb: Add committags support (take 2)

From: Jakub Narebski <[email-masked]>
Date: Wed, 6 Dec 2006 13:51:01 +0100

Junio C Hamano wrote:

> Jakub Narebski <[email-masked]> writes:
>
>> I have thought about putting %committags and @committags before
>> loading config file
>>   do $GITWEB_CONFIG if -e $GITWEB_CONFIG;
>> which can load config file depending on the project, but perhaps
>> it is too complicated solution.
> 
> I think you are talking about a gitweb-instance wide
> customization, but that's not what I meant.  I meant per-project
> configuration where w/git-gui.git and w/git.git are served by
> the same instance of gitweb but have pointers to different issue
> trackers.

It looks like the hardest part with committags support wouldn't be the 
actual implementation of it, but coming with easy and fast way to set 
up those committags.

gitweb-xmms2 project from which the idea of committags support in gitweb 
came (I think, correct me if I'm wrong) avoids this issue by having 
issue tracker / bug tracker the same for all projects served by single 
gitweb installation; the configuration is site-wide, and there is no 
per project committags configuration.

I have imagined the following twofold solution.

1. Make it easier to have per repository gitweb configuration, for
   example by having gitweb configuration file in GIT_DIR for a project,
   "gitweb_conf.perl" by default:

  our $GITWEB_REPO_CONFIG = $ENV{'GITWEB_REPO_CONFIG'} ||
  	"++GITWEB_CONFIG++";
  do "$projectroot/$project/$GITWEB_REPO_CONFIG"
  	if -e "$projectroot/$project/$GITWEB_CONFIG";

2. Put the configuration in config file, using/like %features support.
   For example gitweb.committags.<committag name> would hold parameters
   for <committag>. Committags sequence would be given by sequence of
   entries in config file. Comittags without options would have sole
   variable entry (which I think is equivalent to being bool variable
   and having 1 or 'yes' as value).

   The trouble with this approach is not overriding defaults provided
   while still turning on/off specific committag. And of course the fact
   that for that we need rather config reader in Perl (Git.pm or
   gitweb).

What do you think about it? Junio? Pasky?
-- 
Jakub Narebski