Re: [PATCHv2 0/2] gitweb: Beginnings of splitting gitweb into modules
- From
Sylvain Rabot <sylvain@abstraction.fr>
- Date
- Aug 23, 2011, 20:35 UTC
- Message-ID
- <1314131735.3120.3.camel@kheops>
- In-Reply-To
- <1304431450-23901-1-git-send-email-jnareb@gmail.com>
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:
Show 78 quoted lines
> 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@abstraction.fr>