Subject: Re: GSoC 2010: "Integrated Web Client for git" proposal

From: Petr Baudis <[email-masked]>
Date: Mon, 19 Apr 2010 13:51:13 +0200

On Mon, Apr 19, 2010 at 12:43:22PM +0200, Jakub Narebski wrote:
> On Sun, Apr 18, 2010 at 21:56 +0200, Petr Baudis wrote:
> > If the project is a success, I wanted to use it for mob branch editing
> > on repo.or.cz. It could also be used as open-source Gist alternative.
> 
> For that you would need editing file / editing contents action, but
> this is explicitely excluded in current version of Pavan's proposal :-(

Is it? I see it only being omitted.

> > But it needs to be coded so that it does not require an actual checked
> > out copy (which shouldn't be too much hassle).
> 
> It would require using 'git hash-object -t blob -w --stdin' (from body
> submitted via POST from textarea) plus 'git update-index --cacheinfo'.

Yes. Not a whole lot of effort, seems to me. A downside is that you
cannot use the working tree - index dichotomy, but life isn't perfect.

> There is however complication that you would need to do open2/open3
> because git-hash-object would require bidirectional communication unless
> you would use temporary file (command_bidi_pipe in Git.pm, untested).

I think even just going through a temporary file is fine for initial
implementation.

> So additional step would be
> 
>         cp -fvR gitweb/lib /var/www/cgi-bin/    ;# as root

Yes!

> I hope that we could make installing gitweb as easy as
> 
>         make webscriptdir=/var/www/cgi-bin/ \
>              gitweb-install
>  
> or in more complicated case (gitweb modules not installed in cgi-bin)
> 
>         make webscriptdir=/var/www/cgi-bin/gitweb \
>              GITWEB_BASE="/gitweb/" \
>              GITWEBPERLLIB=/usr/local/lib/perl5 \
>              gitweb-install
> 
> or something like that (I do not know any standard for the name of build
> configuration variable which tells where to install web aplication; 
> do you?)

Ideally, yes, but that's not directly tied to the splitting effort.
(No clue about the configuration variable.)

> Well, I would perhaps start simply with 
> 
>   gitweb.perl
>   lib/Gitweb.pm
> 
> We can modify file organization later; what's important is the build
> infrastructure (even if it is instruction in gitweb/INSTALL).

That sounds like the best way. :)

-- 
				Petr "Pasky" Baudis
http://pasky.or.cz/ | "Ars longa, vita brevis." -- Hippocrates