From: John Keeping Date: Sat, 27 Apr 2013 14:18:39 GMT Subject: Re: [PATCH] git-gui: fix file name handling with non-empty prefix 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: > 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 > --- > 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