From: Krzesimir Nowak <krzesimir@endocode.com>
To: "Jakub Narębski" <jnareb@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>, git <git@vger.kernel.org>,
Eric Sunshine <sunshine@sunshineco.com>
Subject: Re: [PATCH 1/3] gitweb: Move check-ref-format code into separate function
Date: Wed, 04 Dec 2013 14:06:44 +0100 [thread overview]
Message-ID: <1386162404.2173.15.camel@localhost.localdomain> (raw)
In-Reply-To: <CANQwDwd0_bgKfjsRFjohmzBAnN7vDm-pYYsfe0Q71Za2K7Hw4w@mail.gmail.com>
On Tue, 2013-12-03 at 20:38 +0100, Jakub Narębski wrote:
> On Tue, Dec 3, 2013 at 8:02 PM, Junio C Hamano <gitster@pobox.com> wrote:
> > Krzesimir Nowak <krzesimir@endocode.com> writes:
>
> >> +sub check_ref_format {
> >> + my $input = shift || return undef;
> >> +
> >> + # restrictions on ref name according to git-check-ref-format
> >> + if ($input =~ m!(/\.|\.\.|[\000-\040\177 ~^:?*\[]|/$)!) {
> >> + return undef;
> >> + }
> >> + return $input;
> >> +}
> [...]
> >> @@ -1462,10 +1472,9 @@ sub validate_refname {
> >> # it must be correct pathname
> >> $input = validate_pathname($input)
> >> or return undef;
> >> - # restrictions on ref name according to git-check-ref-format
> >> - if ($input =~ m!(/\.|\.\.|[\000-\040\177 ~^:?*\[]|/$)!) {
> >> - return undef;
> >> - }
> >
> > So far, so good.
> >
> >> + # check git-check-ref-format restrictions
> >> + $input = check_ref_format($input)
> >> + or return undef;
> >> return $input;
> >
> > Hmmm. Why do you need "<LF><INDENT>or return under" here? It would
> > not hurt too much per-se (strictly speaking, if the $input were a
> > string "0", this will return undef instead of "0", which should be
> > an OK name as far as the regexp is concerned), but it seems to be
> > making the logic unnecessarily complex for no real gain.
>
> I think this simply follows "$input = validate_sth($input) or return undef;"
> pattern used in this area of gitweb code (perhaps mis-used).
>
Reading the validate_* subs and check_ref_format sub makes me think that
they should just return either 0 when validation fails or 1 when it
succeeds.
If I add an extra branch ref named "0", then check_ref_format just
returns "0" as it matches the git-check-ref-format style regex. But "0"
is coerced to 0 and validate_and_filter_extra_branches will error out. I
actually reproduced that.
> Stricly speaking pure refactoring (no functional change, e.g. no assign
> to $input) would be "check_ref_format($input) or return undef;", or even
> "return check_ref_format($input);" if we keep check_ref_format() passthru
> on valid refname.
>
I fixed that too.
--
Krzesimir Nowak
Software Developer
Endocode AG
krzesimir@endocode.com
------
Endocode AG, Johannisstraße 20, 10117 Berlin
info@endocode.com | www.endocode.com
Vorstandsvorsitzender: Mirko Boehm
Vorstände: Dr. Karl Beecher, Chris Kühl, Sebastian Sucker
Aufsichtsratsvorsitzende: Jennifer Beecher
Registergericht: Amtsgericht Charlottenburg - HRB 150748 B
next prev parent reply other threads:[~2013-12-04 13:07 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-03 14:56 [PATCH 0/3] Show extra branch refs in gitweb Krzesimir Nowak
2013-12-03 14:56 ` [PATCH 1/3] gitweb: Move check-ref-format code into separate function Krzesimir Nowak
2013-12-03 19:02 ` Junio C Hamano
2013-12-03 19:38 ` Jakub Narębski
2013-12-03 19:48 ` Junio C Hamano
2013-12-04 13:06 ` Krzesimir Nowak [this message]
2013-12-03 14:56 ` [PATCH 2/3] gitweb: Add a feature for adding more branch refs Krzesimir Nowak
2013-12-03 18:51 ` Junio C Hamano
2013-12-03 20:15 ` Junio C Hamano
2013-12-03 20:38 ` Jakub Narębski
2013-12-04 12:49 ` Krzesimir Nowak
2013-12-04 17:57 ` Junio C Hamano
2013-12-03 14:56 ` [PATCH 3/3] gitweb: Denote non-heads, non-remotes branches Krzesimir Nowak
2013-12-04 13:44 ` [PATCH 0/3] Show extra branch refs in gitweb Krzesimir Nowak
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=1386162404.2173.15.camel@localhost.localdomain \
--to=krzesimir@endocode.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jnareb@gmail.com \
--cc=sunshine@sunshineco.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.