Hi, Just wanted to know what is the current status of splitting gitweb sources into modules. Regards. On Tue, 2011-05-03 at 16:04 +0200, Jakub Narebski wrote: > Gitweb is currently next to largest file (after gitk) in git sources, > more than 225KB with more than 7,000 lines. Therefore adding any > large feature that would require large amount of code added, like > gitweb caching by J.H. and my rewrite of it, or "gitweb admin/write" > [failed] GSoC 2010 project by Pavan Kumar Sunkara, would require for > new code to be added as a separate module. Otherwise gitweb would > fast become unmaintainable. > > Note that there is already patch series sent which as one of side > effects splits the JavaScript side of gitweb into many smaller > self-contained files: > > [PATCH 03/13] gitweb: Split JavaScript for maintability, combining on build > http://thread.gmane.org/gmane.comp.version-control.git/172384/focus=172385 > > Not in all cases splitting gitweb upfront would be required. At least > in the case of gitweb caching it doesn't. What must be done however > is preparing the infrastructure for modular gitweb sources; to > properly test such infrastructure we need at least one split gitweb > module. With patch series preparing for splitting or true splitting of > gitweb sent upfront the future patch series that implements > code-extensive feature (like e.g. output caching) would be smaller and > easier to review. > > > This series is intended to bring such infrastructure to gitweb, to > prepare way for adding output caching to gitweb. Alternatively it can > be thought as beginning of splitting gitweb into smaller submodules, > for better maintainability. > > This patch series was sent to git mailing list as > > [PATCH 0/2] gitweb: Begin splitting gitweb > http://thread.gmane.org/gmane.comp.version-control.git/165824 > > In the above mentioned first version of this series, the first patch > that prepared the way for splitting gitweb was in three versions: A, B > and C. In this second version of this series the first patch in > series most closely resembles version C in v1 series. > > In this version gitweb uses _both_ 'use lib __DIR__."/lib";' and > 'use lib "++GITWEBLIBDIR++";', in correct order (as compared to > version C of v1 series), so that __DIR__."/lib" is checked first, > i.e. modules installed alongside gitweb.cgi win. > > Pull request: > ~~~~~~~~~~~~~ > This series is available in the git repository at: > git://repo.or.cz/git/jnareb-git.git gitweb/split > git://github.com/jnareb/git.git gitweb/split > > Well, those patches has a few minor cosmetic fixups... > > Table of contents: > ~~~~~~~~~~~~~~~~~~ > * [PATCHv2 1/2] gitweb: Prepare for splitting gitweb > [PATCHv2 2/2] gitweb: Create Gitweb::Util module > > First patch implements infrastructure, second proof of concept patch uses > this infrastructure, testing it ("make -C gitweb test-installed"). > > Shortlog: > ~~~~~~~~~ > Jakub Narebski (1): > gitweb: Prepare for splitting gitweb > > Pavan Kumar Sunkara (1): > gitweb: Create Gitweb::Util module > > Diffstat: > ~~~~~~~~~ > gitweb/INSTALL | 7 ++ > gitweb/Makefile | 23 ++++++- > gitweb/gitweb.perl | 151 ++++----------------------------------- > gitweb/lib/Gitweb/Util.pm | 177 +++++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 219 insertions(+), 139 deletions(-) > create mode 100755 gitweb/lib/Gitweb/Util.pm > -- Sylvain Rabot <sylvain@xxxxxxxxxxxxxx>
Attachment:
signature.asc
Description: This is a digitally signed message part