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

Re: [RFC/PATCH v4 1/2] gitweb: check given hash before trying to create snapshot

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 13, 2009, 03:30 UTC
Message-ID
<7vmy4z4j35.fsf@alter.siamese.dyndns.org>
In-Reply-To
<4AAC3833.8060905@mailservices.uwaterloo.ca>
Mark Rada <marada@uwaterloo.ca> writes:
Show 15 quoted lines
> Makes things nicer in cases when you hand craft the snapshot URL but
> make a typo in defining the hash variable (e.g. netx instead of next);
> you will now get an error message instead of a broken tarball.
>
> To maintain backwards compatibility, git_get_head_hash is now a wrapper
> for git_get_full_hash, as suggested by Jakub Narebski.
>
> Tests for t9501 are included to demonstrate added functionality.
>
> Signed-off-by: Mark Rada <marada@uwaterloo.ca>
> ---
>
> 	This is just a re-send based on getting torn a new one by Junio.
> 	Changes since v3:
> 		- variables have been renamed for readability
Much nicer to read.  Thanks.
Show 10 quoted lines
> @@ -5196,8 +5202,9 @@ sub git_snapshot {
>  		die_error(403, "Unsupported snapshot format");
>  	}
>  
> -	if (!defined $hash) {
> -		$hash = git_get_head_hash($project);
> +	my $full_hash = git_get_full_hash($project, $hash);
> +	if (!$full_hash) {
> +		die_error(404, 'Hash id was not valid');
>  	}

This is in the context of "snapshot", so obviously you care more about just "such an object exists", don't you? You also want it to be a tree-ish. Try giving it $hash = 'junio-gpg-pub' and see how it breaks.

Show 6 quoted lines
> @@ -5210,7 +5217,7 @@ sub git_snapshot {
>  	$cmd = quote_command(
>  		git_cmd(), 'archive',
>  		"--format=$known_snapshot_formats{$format}{'format'}",
> -		"--prefix=$name/", $hash);
> +		"--prefix=$name/", $full_hash);

Why? There was no justification as to why this change is necessary in the commit log message.

Previous: Mark RadaNext: Mark Rada
Message 2 of 5 in “gitweb: check given hash before trying to create snapshot”
  1. 1/2 gitweb: check given hash before trying to create snapshotMark Rada, Sep 13, 2009
  2. Junio C HamanoSep 13, 2009
  3. Mark RadaSep 13, 2009
  4. Junio C HamanoSep 13, 2009
  5. Jakub NarebskiSep 13, 2009

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.