git-gui: Fix parsing of <rev> <path-which-not-present-in-worktree>
[gitweb.git] / git-gui.sh
index 5d035d5a178ff5afce71335e798a5ac513cc080a..e133331ef59a44315f5f5e42e4219902024a5c81 100755 (executable)
@@ -3003,7 +3003,17 @@ blame {
        set jump_spec {}
        set is_path 0
        foreach a $argv {
-               if {$is_path || [file exists $_prefix$a]} {
+               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
+               }
+
+               if {$is_path} {
                        if {$path ne {}} usage
                        set path [normalize_relpath $_prefix$a]
                        break
@@ -3028,8 +3038,13 @@ blame {
        unset is_path
 
        if {$head ne {} && $path eq {}} {
-               set path [normalize_relpath $_prefix$head]
-               set head {}
+               if {[string index $head 0] eq {/}} {
+                       set path [normalize_relpath $head]
+                       set head {}
+               } else {
+                       set path [normalize_relpath $_prefix$head]
+                       set head {}
+               }
        }
 
        if {$head eq {}} {