Skip to content

Commit

Permalink
git-gui: fix file name handling with non-empty prefix
Browse files Browse the repository at this point in the history
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.

Acked-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
  • Loading branch information
John Keeping authored and Pat Thoyts committed Jun 7, 2013
1 parent 7d2017e commit 2f38dd0
Showing 1 changed file with 3 additions and 11 deletions.
14 changes: 3 additions & 11 deletions git-gui.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3017,19 +3017,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 {}} {
Expand Down

0 comments on commit 2f38dd0

Please sign in to comment.