From: Jakub Narebski <jnareb@gmail.com>
To: Peter Vereshagin <peter@vereshagin.org>
Cc: git@vger.kernel.org
Subject: Re: The future of gitweb - part 2: JavaScript
Date: Sun, 17 Apr 2011 00:19:07 +0200 [thread overview]
Message-ID: <201104170019.07997.jnareb@gmail.com> (raw)
In-Reply-To: <20110416215328.GA5739@external.screwed.box>
On Sat, 16 Apr 2011, Peter Vereshagin wrote:
> You're face to face with man who sold the world, Jakub!
> 2011/04/16 23:17:55 +0200 Jakub Narebski <jnareb@gmail.com> => To Peter Vereshagin :
> JN> > JN> No, fetching and pushing using HTTP transport, be it "smart" or "dumb"
> JN> > JN> Gitweb is web interface for _viewing and browsing_ repositories using
> JN>
> JN> You can configure web server in such way that you can use the same
> JN> URL for fetching with git as for browsing repository with web browser
>
> There are more disadvantages of such an approach:
> - for CGI, the process is being executed on every request. On some systems, e.
> g., Windows, launching a process is very expensive, sometimes more than
> compiling of perl source itself.
You can run gitweb as a persistent web app, using it either as FastCGI
script, or via mod_perl + ModPerl::Registry.
git-http-backend is written in C, not Perl.
> - for development, some different parts of the code for the same purpose do
> exist, e. g., client and storage i/o. The more it is being developed, the
> more features it satisfies, the more such a code.
Gitweb is written in Perl. This language is good for prototyping, for
fast development, and for easy writing of a web app. Gitweb works on
porcelain level - it is an user interface (a web one).
C is good for performance. git-http-backend is only an example
implementation. The "smart" HTTP protocol works on porcelain level.
> For example, I suppose git-http-backend will have 'get a particular
> commitdiff quickly without fetching all the repo' feature one day
> to be used in web clients' scripts, e.g. will serve the same way
> for git cli as a file system. This will make it have the same
> feature like 'commitdiff' feature of a gitweb but implemented
> differently.
Unix philosophy which Git tries to follow is "do one thing and do it
well".
I don't believe git-http-backend would ever talk to web browsers, and
it is quite unlikely for git to acquire non-distributed client-server
mode.
And if it does acquire such feature, then gitweb will be simply modified
to use it...
> - the routing of the request, the deciding what to do with the particular
> HTTP request, becomes more obfuscated. First, web server decides what CGI
> should approve it. Plus two more decision makers are those 2 CGI, all different.
>
> It's just why I never supposed git to have 2 different native web interfaces,
> especially in sight of plumbing vs porcelain contrast in cli, sorry for
> confusion.
Those are not two _web interfaces_. Gitweb is one of web interfaces
to git repositories; more at
https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#Web_Interfaces
Fetching and pushing via HTTP is not web interface, is HTTP _transport_.
For one you use web browser, for other you use git itself.
But this discussion got very off-topic...
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2011-04-16 22:19 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-14 19:39 The future of gitweb (long term goals) Jakub Narebski
2011-02-15 9:09 ` Michael J Gruber
2011-02-21 22:06 ` Jakub Narebski
2011-02-23 10:54 ` Michael J Gruber
2011-02-25 22:37 ` The future of git-instaweb (was: Re: The future of gitweb (long term goals)) Jakub Narebski
2011-02-22 17:02 ` The future of gitweb (long term goals) Ævar Arnfjörð Bjarmason
2011-02-22 18:17 ` Jakub Narebski
2011-04-14 9:54 ` The future of gitweb - part 2: JavaScript Jakub Narebski
2011-04-14 19:30 ` Michał Łowicki
2011-04-15 1:56 ` david
2011-04-16 17:12 ` Peter Vereshagin
2011-04-16 19:32 ` Jakub Narebski
2011-04-16 20:48 ` Peter Vereshagin
2011-04-16 21:17 ` Jakub Narebski
2011-04-16 21:53 ` Peter Vereshagin
2011-04-16 22:19 ` Jakub Narebski [this message]
2011-04-16 22:33 ` Jakub Narebski
2011-04-16 23:00 ` Peter Vereshagin
2011-04-17 10:11 ` Jakub Narebski
2011-04-20 18:24 ` Gitweb != HTTP back-end {Was: Re: The future of gitweb - part 2: JavaScript} Drew Northup
2011-04-20 18:47 ` Jakub Narebski
2011-04-16 17:44 ` The future of gitweb - part 2: JavaScript Pau Garcia i Quiles
2011-04-17 14:59 ` Jakub Narebski
2011-04-17 15:14 ` Pau Garcia i Quiles
2011-04-18 18:13 ` Jakub Narebski
2011-04-17 20:14 ` Petr Baudis
2011-04-18 13:34 ` Jakub Narebski
2011-04-18 13:50 ` Petr Baudis
2011-04-18 14:15 ` Jakub Narebski
2011-04-20 18:39 ` Drew Northup
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201104170019.07997.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=peter@vereshagin.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.