From 4bbf264f24077c872ff2a0ba31da6f9d84c0e942 Mon Sep 17 00:00:00 2001 From: Matthew Cengia Date: Thu, 8 Aug 2024 19:00:42 +1000 Subject: [PATCH] fix: Use absolute (relative to repo root) path to supplied filename If a file is referenced from the subdir of a repository, the script confirms it exists and tacks the filename onto the URL, but doesn't check if the filename provided is relative to the repo root. --- bin/git-browse | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/git-browse b/bin/git-browse index 98f315bb1..8e87665be 100755 --- a/bin/git-browse +++ b/bin/git-browse @@ -33,7 +33,7 @@ if [[ $remote_url =~ gitlab ]]; then # construct gitlab urls # https://gitlab.com///-/blob//#L- if [[ -n ${filename} ]]; then - url="${url}/-/blob/${commit_or_branch}/${filename}" + url="${url}/-/blob/${commit_or_branch}/$(git ls-files --full-name "${filename}")" if [[ -n "${line1}" ]]; then url="${url}#L${line1}" if [[ -n "${line2}" ]]; then @@ -45,7 +45,7 @@ elif [[ $remote_url =~ github ]]; then # construct github urls # https://github.com///blob//#L-L if [[ -n "${filename}" ]]; then - url="${url}/blob/${commit_or_branch}/${filename}" + url="${url}/blob/${commit_or_branch}/$(git ls-files --full-name "${filename}")" if [[ -n "${line1}" ]]; then url="${url}#L${line1}" if [[ -n "${line2}" ]]; then @@ -57,7 +57,7 @@ elif [[ $remote_url =~ bitbucket ]]; then # construct bitbucket urls # https://bitbucket.org///src//#lines-: if [[ -n ${filename} ]]; then - url=${url}/src/${commit_or_branch}/${filename} + url=${url}/src/${commit_or_branch}/$(git ls-files --full-name "${filename}") if [[ -n "${line1}" ]]; then url="${url}#lines-${line1}" if [[ -n "${line2}" ]]; then