git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/3] gitweb: Move check-ref-format code into separate function

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 3, 2013, 19:02 UTC
Message-ID
<xmqqd2ldoj0s.fsf@gitster.dls.corp.google.com>
In-Reply-To
<1386082603-8404-2-git-send-email-krzesimir@endocode.com>
Krzesimir Nowak <krzesimir@endocode.com> writes:
Show 39 quoted lines
> This check will be used in more than one place later.
>
> Signed-off-by: Krzesimir Nowak <krzesimir@endocode.com>
> Reviewed-by: Junio C Hamano <gitster@pobox.com>
> Reviewed-by: Jakub Narębski <jnareb@gmail.com>
> Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
> ---
>  gitweb/gitweb.perl | 17 +++++++++++++----
>  1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 68c77f6..f7730d7 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -1452,6 +1452,16 @@ sub validate_pathname {
>  	return $input;
>  }
>  
> +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;
> +}
> +
>  sub validate_refname {
>  	my $input = shift || return undef;
>  
> @@ -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.

>  }
Previous: Krzesimir NowakNext: Jakub Narębski
Message 3 of 14 in “Show extra branch refs in gitweb”
  1. 0/3 Show extra branch refs in gitwebKrzesimir Nowak, Dec 3, 2013
  2. 1/3 gitweb: Move check-ref-format code into separate functionKrzesimir Nowak, Dec 3, 2013
  3. Junio C HamanoDec 3, 2013
  4. Jakub NarębskiDec 3, 2013
  5. Junio C HamanoDec 3, 2013
  6. Krzesimir NowakDec 4, 2013
  7. 2/3 gitweb: Add a feature for adding more branch refsKrzesimir Nowak, Dec 3, 2013
  8. Junio C HamanoDec 3, 2013
  9. Junio C HamanoDec 3, 2013
  10. Jakub NarębskiDec 3, 2013
  11. Krzesimir NowakDec 4, 2013
  12. Junio C HamanoDec 4, 2013
  13. 3/3 gitweb: Denote non-heads, non-remotes branches.Krzesimir Nowak, Dec 3, 2013
  14. Krzesimir NowakDec 4, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.