From: peter at lekensteyn.nl (Peter Wu)
Subject: Error when searching for a bogus range
Date: Tue, 10 Jun 2014 23:07:20 +0200 [thread overview]
Message-ID: <1776285.4k9HZBe05R@al> (raw)
In-Reply-To: <20140610205939.GA28807@serenity.lan>
On Tuesday 10 June 2014 21:59:39 John Keeping wrote:
> On Tue, Jun 10, 2014 at 02:05:14PM -0400, Konstantin Ryabitsev wrote:
> > cgit-0.10.1-1.el6 (EPEL version)
> >
> > If you search for a bogus range string here:
> >
> > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/
> >
> > Using something like "range" and "qwerty123456", it returns an "Internal
> > Server Error" and the following in the logs:
> >
> > > [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] fatal: ambiguous argument 'qwerty123456': unknown revision or path not in the working tree., referer: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/
> > > [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] Use '--' to separate paths from revisions, like this:, referer: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/
> > > [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] 'git <command> [<revision>...] -- [<file>...]', referer: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/
> > > [Tue Jun 10 17:45:32 2014] [error] [client 172.21.1.6] Premature end of script headers: cgit, referer: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/
>
> This is because we just pass the arguments straight to Git's revision
> parsing machinery which die()s if it cannot parse an argument, printing
> the above to stderr and exiting.
>
> The patch below makes it a bit friendlier by just ignoring unhandled
> arguments, but I can't see an easy way to report errors when we can't
> parse revision arguments without losing the flexibility of supporting
> all of the revision specifiers supported by Git.
The patch looks good to me, it reduces the error to just the "fatal: ..."
message. The error can be reproduced with:
echo scan-path=. > cgitrc
CGIT_CONFIG=cgitrc PATH_INFO=/.git/log/ QUERY_STRING=qt=range\&q=foo ./cgit
(assuming .git/ in $PWD)
The accepted argument is the same as the one passed to `git rev-list`.
Unless you manually check for the possible formats (v3.15~10..v3.15,
v3.13.., ..next, foo...bar, you won't be able to catch the error (as
John noted).
Regards,
Peter
> -- >8 --
> diff --git a/ui-log.c b/ui-log.c
> index 499534c..4cb26bc 100644
> --- a/ui-log.c
> +++ b/ui-log.c
> @@ -337,16 +337,16 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
> else if (commit_sort == 2)
> argv_array_push(&rev_argv, "--topo-order");
>
> - if (path) {
> - argv_array_push(&rev_argv, "--");
> + argv_array_push(&rev_argv, "--");
> + if (path)
> argv_array_push(&rev_argv, path);
> - }
>
> init_revisions(&rev, NULL);
> rev.abbrev = DEFAULT_ABBREV;
> rev.commit_format = CMIT_FMT_DEFAULT;
> rev.verbose_header = 1;
> rev.show_root_diff = 0;
> + rev.ignore_missing = 1;
> setup_revisions(rev_argv.argc, rev_argv.argv, &rev, NULL);
> load_ref_decorations(DECORATE_FULL_REFS);
> rev.show_decorations = 1;
next prev parent reply other threads:[~2014-06-10 21:07 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-10 18:05 mricon
2014-06-10 20:59 ` john
2014-06-10 21:07 ` peter [this message]
2014-06-10 22:41 ` Jason
2014-06-28 13:56 ` Jason
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=1776285.4k9HZBe05R@al \
--to=cgit@lists.zx2c4.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 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 NNTP newsgroup(s).