Skip to contentSkip to conversation

gitweb: Strip trailing slashes from $path in git_get_hash_by_path

PATCH New Jakub Narebski 1 participant 2 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 gitweb: Strip trailing slashes from $path in git_get_hash_by_path

---
While
git ls-tree $base -- dirname
shows dirname entry (that's what we want)
git ls-tree $base -- dirname/
shows directory _contents_.

 gitweb/gitweb.perl |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
gitweb/gitweb.perl +1 -1
index fb8d37e..403bba1 100755
@@ -719,7 +719,7 @@ sub git_get_hash_by_path {
 	my $base = shift;
 	my $path = shift || return undef;
 
-	my $tree = $base;
+	$path =~ s,/+$,,;
 
 	open my $fd, "-|", git_cmd(), "ls-tree", $base, "--", $path
 		or die_error(undef, "Open git-ls-tree failed");
Signature · 1 line
1.4.2.1
#1 lore raw

PATCH 1/1 gitweb: Make git_get_hash_by_path check type if provided

---
This patch depends textually (as context) from the previous patch. It can be applied using -C1 without applying previous patch first.

 gitweb/gitweb.perl |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
gitweb/gitweb.perl +5 -0
index 403bba1..7ed963c 100755
@@ -718,6 +718,7 @@ # get hash of given path at given ref
 sub git_get_hash_by_path {
 	my $base = shift;
 	my $path = shift || return undef;
+	my $type = shift;
 
 	$path =~ s,/+$,,;
 
@@ -728,6 +729,10 @@ sub git_get_hash_by_path {
 
 	#'100644 blob 0fa3f3a66fb6a137f6ec2c19351ed4d807070ffa	panic.c'
 	$line =~ m/^([0-9]+) (.+) ([0-9a-fA-F]{40})\t(.+)$/;
+	if (defined $type && $type ne $2) {
+		# type doesn't match
+		return undef;
+	}
 	return $3;
 }
 
Signature · 1 line
1.4.2.1