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

Re: [PATCH] git-gui: fix file name handling with non-empty prefix

From
John Keeping <john@keeping.me.uk>
Date
Apr 27, 2013, 14:18 UTC
Message-ID
<20130427141839.GF472@serenity.lan>
In-Reply-To
<264998b2b2201b7d6ab9bfa8b5518f712b3a6a08.1367069056.git.john@keeping.me.uk>

I got a bounce with "550 no such user" for Pat's email address when sending this. Does anyone have more up-to-date contact details? Or is it just SourceForge being broken?

On Sat, Apr 27, 2013 at 02:24:16PM +0100, John Keeping wrote:
Show 46 quoted lines
> Commit e3d06ca (git-gui: Detect full path when parsing arguments -
> 2012-10-02) fixed the handling of absolute paths passed to the browser
> and blame subcommands by checking whether the file exists without the
> prefix before prepending the prefix and checking again.  Since we have
> chdir'd to the top level of the working tree before doing this, this
> does not work if a file with the same name exists in a subdirectory and
> at the top level (for example Makefile in git.git's t/ directory).
> 
> Instead of doing this, revert that patch and fix absolute path issue by
> using "file join" to prepend the prefix to the supplied path.  This will
> correctly handle absolute paths by skipping the prefix in that case.
> 
> Signed-off-by: John Keeping <john@keeping.me.uk>
> ---
>  git-gui.sh | 14 +++-----------
>  1 file changed, 3 insertions(+), 11 deletions(-)
> 
> diff --git a/git-gui.sh b/git-gui.sh
> index e133331..a94ad7f 100755
> --- a/git-gui.sh
> +++ b/git-gui.sh
> @@ -3003,19 +3003,11 @@ blame {
>  	set jump_spec {}
>  	set is_path 0
>  	foreach a $argv {
> -		if {[file exists $a]} {
> -			if {$path ne {}} usage
> -			set path [normalize_relpath $a]
> -			break
> -		} elseif {[file exists $_prefix$a]} {
> -			if {$path ne {}} usage
> -			set path [normalize_relpath $_prefix$a]
> -			break
> -		}
> +		set p [file join $_prefix $a]
>  
> -		if {$is_path} {
> +		if {$is_path || [file exists $p]} {
>  			if {$path ne {}} usage
> -			set path [normalize_relpath $_prefix$a]
> +			set path [normalize_relpath $p]
>  			break
>  		} elseif {$a eq {--}} {
>  			if {$path ne {}} {
> -- 
> 1.8.3.rc0.149.g98a72f2.dirty
Previous: John KeepingNext: Andrew Wong
Message 2 of 4 in “git-gui: fix file name handling with non-empty prefix”
  1. git-gui: fix file name handling with non-empty prefixJohn Keeping, Apr 27, 2013
  2. John KeepingApr 27, 2013
  3. Andrew WongMay 12, 2013
  4. John KeepingMay 30, 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.