From: Christian Meder <chris@absolutegiganten.org>
To: Petr Baudis <pasky@ucw.cz>
Cc: git@vger.kernel.org
Subject: Re: First web interface and service API draft
Date: Mon, 25 Apr 2005 00:29:20 +0200 [thread overview]
Message-ID: <1114381760.3259.37.camel@localhost> (raw)
In-Reply-To: <20050422225733.GH21204@pasky.ji.cz>
On Sat, 2005-04-23 at 00:57 +0200, Petr Baudis wrote:
> Dear diary, on Fri, Apr 22, 2005 at 03:29:39PM CEST, I got a letter
> where Christian Meder <chris@absolutegiganten.org> told me that...
> > > > /<project>
> > > >
> > > > Ok. The URI should start by stating the project name
> > > > e.g. /linux-2.6. This does bloat the URI slightly but I don't think
> > > > that we want to have one root namespace per git archive in the long
> > > > run. Additionally you can always put rewriting or redirecting rules at
> > > > the root level for additional convenience when there's an obvious
> > > > default project.
> > > >
> > > > Should provide some meta data, stats, etc. if available.
> > >
> > > I don't think this makes much sense. I think you should just apply -p1
> > > to all the directories, and define that there should be some / page
> > > which should contain some metadata regarding the repository you are
> > > accessing (probably branches, tags, and such).
> >
> > Hi,
>
> Hi,
>
> > remember that I want to stay stateless as long as possible so everything
> > important has to be encoded in the url. So somewhere in the url the git
> > archive to show has to be encoded. If I remove the <project> portion how
> > do I know on the server side which repo to show ?
>
> since you are configured appropriately.
>
> You need to be anyway. Someone needs to tell you or your web server
> "this lives at http://pasky.or.cz/wit/". So you bind "this" to the
> given repository.
>
> No problem with an additional configuration possibility to say "at that
> place, clone your life place for the given repositories", but if I want
> to have just a single repository at a given URL, it should be possible.
>
> I'm just trying to argue that having it _forced_ to have <project> as
> the part of the URL is useless; this is matter of configuration.
Ok. Got it. <project> for a multi-repo setup and in the simple case of
just one repo <project> can be dropped from the url. Reasonable.
> > > > * Blob data should be probably binary ?
> > >
> > > What do you mean by binary?
> >
> > content-type: binary/octet-stream
>
> Ah. So just as-is, you mean?
Yes.
>
> > > Anything wrong with putting ls-tree output there?
> >
> > ls-tree output should be in .html (see below)
>
> What if I actually want to process it by a script?
Use the .html variant and parse it. Or we add a .txt and/or .xml for
easier parsing.
>
> > > > -------
> > > > /<project>/tree/<tree-sha1>
> > > >
> > > > Tree objects are served in binary form. Primary audience are scripts,
> > > > etc. Human beings will probably get a heart attack when they
> > > > accidentally visit this URI.
> > >
> > > Binary form is unusable for scripts.
> >
> > Why should it be unusable for a downloading script. It's just the raw
> > git object.
> >
> > > We should also have /gitobj/<sha1> for fetching the raw git objects.
> >
> > Everything above is supposed to be raw git objects. No special encoding
> > whatever.
>
> You have a consistency problem here.
>
> Raw git objects as in database contain the leading object type at the
> start, then possibly some more stuff, then '\0' and then compressed
> binary stuff. You mean you are exporting _this_ stuff through this?
>
> That's not very useful except for http-pull, if you as me. It also does
> not blend well with the fact that you say commits are in text or so.
Ok. We spoke of two different things. With raw objects I meant the
uncompressed raw content while you spoke of the raw compressed git
objects. Ok I'm dumb but now that I've understood what you said I agree
with you: we need one generic url for fetching compressed objects.
>
> > > > -------
> > > > /<project>/tree/<tree-sha1>/diff/<ancestor-tree-sha1>/html
> > > >
> > > > Non recursive HTML view of the objects which are contained in the diff
> > > > fully linked with the individual HTML views.
> > >
> > > Why not .html?
> >
> > I think .html isn't very clear because it would
> > be ..../<ancestor-tree-sha1>.html which somehow looks like it has
> > anything to do with the ancestor-tree. But it's the html version of the
> > _diff_ and not the ancestor-tree.
>
> Perhaps /tree/<sha1>.html/diff/<ancestor> ?
>
> I'd lend to ?diff=<ancestor> more and more. The path part of URI is
> there to express _hierarchy_, I think you are abusing that when there is
> no hierarchy.
But I'd argue that you are abusing queries ;-)
After all any given URI of the above kind is linking a specific diff
resource. It's a completely static resource from a user POV. The fact
that the server is probably dynamically generating it is just an
implementation detail.
>
> > > For consistency, I'd stay with the plaintext output by default, .html if
> > > requested.
> >
> > Remember that I'm just sitting on top of git and not git-pasky right
> > now. So there's no canonical changelog plaintext output for me. But I'm
> > not religious about that.
>
> But there is canonical HTML output for you? ;-)
No. Changelog isn't defined by git so there's no canonical output of any
flavour.
> > > OTOH, I'd use
> > >
> > > /log/<commit>
> > >
> > > to specify what commit to start at. It just does not make sense
> > > otherwise, you would not know where to start
> >
> > Start for the changelog is always head, but I guess that's pretty
> > standard. With git log you always start at the head too.
>
> If you are sitting on top of git and not git-pasky, you have no assured
> HEAD information at all.
I've got HEAD. I'm still watching the discussion of tags.
> > If you want to start at a specific commit. Why not start
> > at /linux-2.6/commit/<sha1>.html ?
>
> And how does that give me the changelog?
You could click through the commit chain interactively or we could add a
changelog from here function.
> > > I think the <commit> should follow the same or similar rules as Cogito
> > > id decoding. E.g. to get latest Linus' changelog, you'd do
> > >
> > > /log/linus
> >
> > Like I said above I think the shown head should be encoded in the
> > project id.
>
> I thought the project was mapped to repository? But I might just have
> blindly assumed that. ;-) (That does not make me like your approach
> more, though.)
Ok. I think I misunderstood you here. You want to publish the different
heads you are tracking with the same repo, right ?
The proposal didn't account for this scenario yet. I'll think about it.
Christian
--
Christian Meder, email: chris@absolutegiganten.org
The Way-Seeking Mind of a tenzo is actualized
by rolling up your sleeves.
(Eihei Dogen Zenji)
next prev parent reply other threads:[~2005-04-24 22:24 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-22 10:41 First web interface and service API draft Christian Meder
2005-04-22 11:34 ` Jon Seymour
2005-04-22 12:10 ` Petr Baudis
2005-04-22 12:27 ` Jon Seymour
2005-04-22 13:32 ` Christian Meder
2005-04-22 13:30 ` Christian Meder
2005-04-22 12:10 ` Petr Baudis
[not found] ` <1114176579.3233.42.camel@localhost>
2005-04-22 22:57 ` Petr Baudis
2005-04-24 22:29 ` Christian Meder [this message]
2005-04-22 12:37 ` El Draper
2005-04-22 13:44 ` Christian Meder
2005-04-22 13:47 ` Jon Seymour
2005-04-22 14:23 ` Jan Harkes
2005-04-22 20:57 ` Christian Meder
2005-04-23 6:39 ` Jon Seymour
2005-04-22 22:45 ` Petr Baudis
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=1114381760.3259.37.camel@localhost \
--to=chris@absolutegiganten.org \
--cc=git@vger.kernel.org \
--cc=pasky@ucw.cz \
/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.