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
List information: http://vger.kernel.org/majordomo-info.html
* 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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).