Subject: Re: What's cooking in git.git (Nov 2010, #01; Tue, 9)

From: Jakub Narebski <[email-masked]>
Date: Fri, 12 Nov 2010 00:53:27 +0100

On Thu, 11 Nov 2010, Junio C Hamano wrote:
> Jakub Narebski <[email-masked]> writes:
>> Junio C Hamano <[email-masked]> writes:
>> ...
>>> * jh/gitweb-caching (2010-11-01) 4 commits
>>>  - gitweb: Minimal testing of gitweb caching
>>>  - gitweb: File based caching layer (from git.kernel.org)
>>>  - gitweb: add output buffering and associated functions
>>>  - gitweb: Prepare for splitting gitweb
>>>  (this branch uses jn/gitweb-test.)
>>
>>> * jn/gitweb-test (2010-09-26) 4 commits
>>>   (merged to 'next' on 2010-11-05 at 90b3adf)
>>>  + gitweb/Makefile: Include gitweb/config.mak
>>>  + gitweb/Makefile: Add 'test' and 'test-installed' targets
>>>  + t/gitweb-lib.sh: Add support for GITWEB_TEST_INSTALLED
>>>  + gitweb: Move call to evaluate_git_version after evaluate_gitweb_config
>>>  (this branch is used by jh/gitweb-caching.)
>>
>> These two branches have simple to resolve but non-trivial conflict.
>> Should I rebase 'jh/gitweb-caching' on top of 'jn/gitweb-test' then,
>> resolving this conflict?
> 
> In general, when a conflict between topic A and B is simple to resolve
> (and I have the correct resolution already in 'pu'), I'd rather prefer to
> keep topic A independent of topic B than rebasing topic A on top of topic
> B, unless topic A is far from ready and topic B is truly ready and about
> to graduate, so that we can leave a door open for A to graduate before B
> does (or vice versa).
> 
> In this case, I think it is overdue (iow, sorry I've been slow) for the
> gitweb-test topic to graduate, so the separation does not really matter.

I have send version of 'gitweb: Prepare for splitting gitweb' that applies
cleanly on top of "gitweb/Makefile: Add 'test' and 'test-installed' targets"
as 
  "[PATCHv7.1b 1/4] gitweb: Prepare for splitting gitweb"
  http://article.gmane.org/gmane.comp.version-control.git/160492

But you probably don't have this in 'pu'.

Resolving of conflict is straighforward, but non-trivial, and consist
of two parts:
 * textual conflict caused by adding extra stuff in place where
   context is - simple to resolve
 * adding support for testing installed version of modules, in the
   future if/when we add tests of individual modules (I use this in
   my rewrite of gitweb caching) - non-trivial

>> BTW. this would allow me to improve 'gitweb: Minimal testing of gitweb
>> caching'.
> 
> Then I probably should leave gitweb-caching out of 'next' when gitweb-test
> graduates to master so that you can refresh the caching series.  Thanks
> for a heads-up.

In short: code responsible for turning caching on was duplicated in t9500
and t9502 (will be moved to t/gitweb-lib.sh), and code path with die_error
(e.g. 404 not found case) was not tested. 

I'll try to send re-roll (rebased and improved) tomorrow (on Friday).
-- 
Jakub Narebski
Poland