From: Jakub Narebski <jnareb@gmail.com>
To: Lea Wiemann <lewiemann@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: [PATCH] gitweb: return correct HTTP status codes
Date: Tue, 17 Jun 2008 16:33:26 +0200 [thread overview]
Message-ID: <200806171633.26864.jnareb@gmail.com> (raw)
In-Reply-To: <4857C469.1000401@gmail.com>
Lea Wiemann wrote:
> Junio C Hamano wrote:
> > [Gitweb's error handling:] isn't it possible for you to unconfuse
> > yourself in a slow path and figure out exactly why it failed?
> >
> > unless (open $fd, '-|', ls-tree $base -- $path) {
> > # Oh, an error? why?
> > if (!object_exists($base)) { [...]
> > } elsif (!is_a_treeish($base)) { [...]
BTW. you can catch such errors on close(), not on open(), my mistake.
On open you can catch only fairly fatal errors (5xx category I think).
> That's possible, but the API I'm writing is designed the other way
> round: First, get the hash & type of $base; if it fails or the type is
> wrong, die accordingly. Then pass the hash you got into whatever call
> to git, and if that fails, you can quite safely assume that something
> serious went wrong. (The example above has an additional $path to deal
> with, but you get the idea.)
>
> IOW, the strategy is "don't let the git binaries resolve any object
> names for you", which should make both error handling and caching a lot
> easier.
But that means checking arguments in the "fast path", which means
additional calls to git commands in the _common_ case, not only in
the case of errors. I think that even with caching it is not a good
idea.
I'll try to come with example implementation using Error.pm and Git.pm
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2008-06-17 14:34 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-15 21:15 [PATCH] gitweb: return correct HTTP status codes Lea Wiemann
2008-06-15 22:48 ` Jakub Narebski
2008-06-16 15:57 ` Lea Wiemann
2008-06-16 16:43 ` Jakub Narebski
2008-06-16 21:49 ` Lea Wiemann
2008-06-16 22:34 ` Jakub Narebski
2008-06-17 13:53 ` Lea Wiemann
2008-06-16 22:38 ` Junio C Hamano
2008-06-17 14:04 ` Lea Wiemann
2008-06-17 14:33 ` Jakub Narebski [this message]
2008-06-17 22:28 ` Lea Wiemann
2008-06-17 22:54 ` Jakub Narebski
2008-06-17 23:47 ` Lea Wiemann
2008-06-18 0:12 ` Jakub Narebski
2008-06-18 1:25 ` Lea Wiemann
2008-06-18 7:35 ` Jakub Narebski
2008-06-16 23:37 ` Jakub Narebski
2008-06-18 0:15 ` [PATCH] gitweb: standarize " Lea Wiemann
2008-06-19 0:51 ` [PATCH v2] " Jakub Narebski
2008-06-19 19:08 ` Lea Wiemann
2008-06-19 20:03 ` [PATCH v3] " Lea Wiemann
2008-06-19 20:25 ` Lea Wiemann
2008-06-19 22:37 ` Jakub Narebski
2008-06-20 0:48 ` Junio C Hamano
2008-06-19 22:22 ` [PATCH v2] " Jakub Narebski
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=200806171633.26864.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=lewiemann@gmail.com \
/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.