# [BUG] git-gui blame: "Show History Context" is broken

3 messages from 2010-02-17 to 2010-02-19. Participants: Kirill Smelkov, Pat Thoyts.
Thread: https://gitlist.dev/t/22693

## Kirill Smelkov, 2010-02-17 12:13

Subject: [BUG] git-gui blame: "Show History Context" is broken
Message-ID: <20100217121304.GA1623@tugrik.mns.mnsspb.ru>
URL: https://gitlist.dev/e/20100217121304.GA1623%40tugrik.mns.mnsspb.ru

```
Git-gui as shipped with todays git.git master is a bit broken:

in git.git master (v1.7.0-29-g6d81630), try running:

    $ git gui blame xdiff-interface.h

Then select first line 'd9ea d9ea   1 #ifndef XDIFF_INTERFACE_H', right
click to popup context menu, select "Show History Context" -->

--> git gui errors with:

    "Error: couldn't change working directory to "": no ...


Thanks,
Kirill

```

## Pat Thoyts, 2010-02-18 02:11

Subject: [PATCH] Handle failure of core.worktree to identify the working directory.
Message-ID: <87iq9vgugf.fsf@users.sourceforge.net>
URL: https://gitlist.dev/e/87iq9vgugf.fsf%40users.sourceforge.net
In-Reply-To: <20100217121304.GA1623@tugrik.mns.mnsspb.ru>

```
Commit 21985a11 'git-gui: handle non-standard worktree locations' attempts
to use either GIT_WORK_TREE or core.worktree to set the _gitworktree
variable but these may not be set which leads to a failure to launch
gitk to review history. Use _gitdir to set the location for a standard
git layout where the parent of the .git directory is the working tree.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
---
>Git-gui as shipped with todays git.git master is a bit broken:
>
>in git.git master (v1.7.0-29-g6d81630), try running:
>
>    $ git gui blame xdiff-interface.h
>
>Then select first line 'd9ea d9ea   1 #ifndef XDIFF_INTERFACE_H', right
>click to popup context menu, select "Show History Context" -->
>
>--> git gui errors with:
>
>    "Error: couldn't change working directory to "": no ...
>
>
>Thanks,
>Kirill

 git-gui.sh |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/git-gui.sh b/git-gui.sh
index 8996d2d..ec81b15 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -1158,6 +1158,9 @@ apply_config
 # try to set work tree from environment, falling back to core.worktree
 if {[catch { set _gitworktree $env(GIT_WORK_TREE) }]} {
 	set _gitworktree [get_config core.worktree]
+	if {$_gitworktree eq ""} {
+		set _gitworktree [file dirname [file normalize $_gitdir]]
+	}
 }
 if {$_prefix ne {}} {
 	if {$_gitworktree eq {}} {
-- 
1.6.5.1.1367.gcd48


-- 
Pat Thoyts                            http://www.patthoyts.tk/
PGP fingerprint 2C 6E 98 07 2C 59 C8 97  10 CE 11 E6 04 E0 B9 DD

```

## Kirill Smelkov, 2010-02-19 13:55

Subject: Re: [PATCH] Handle failure of core.worktree to identify the working directory.
Message-ID: <20100219135522.GA27417@tugrik.mns.mnsspb.ru>
URL: https://gitlist.dev/e/20100219135522.GA27417%40tugrik.mns.mnsspb.ru
In-Reply-To: <87iq9vgugf.fsf@users.sourceforge.net>

```
On Thu, Feb 18, 2010 at 02:11:21AM +0000, Pat Thoyts wrote:
> Commit 21985a11 'git-gui: handle non-standard worktree locations' attempts
> to use either GIT_WORK_TREE or core.worktree to set the _gitworktree
> variable but these may not be set which leads to a failure to launch
> gitk to review history. Use _gitdir to set the location for a standard
> git layout where the parent of the .git directory is the working tree.
> 
> Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

Now it works, thanks.

Tested-by: Kirill Smelkov <kirr@mns.spb.ru>

> >Git-gui as shipped with todays git.git master is a bit broken:
> >
> >in git.git master (v1.7.0-29-g6d81630), try running:
> >
> >    $ git gui blame xdiff-interface.h
> >
> >Then select first line 'd9ea d9ea   1 #ifndef XDIFF_INTERFACE_H', right
> >click to popup context menu, select "Show History Context" -->
> >
> >--> git gui errors with:
> >
> >    "Error: couldn't change working directory to "": no ...
> >
> >
> >Thanks,
> >Kirill
> 
>  git-gui.sh |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/git-gui.sh b/git-gui.sh
> index 8996d2d..ec81b15 100755
> --- a/git-gui.sh
> +++ b/git-gui.sh
> @@ -1158,6 +1158,9 @@ apply_config
>  # try to set work tree from environment, falling back to core.worktree
>  if {[catch { set _gitworktree $env(GIT_WORK_TREE) }]} {
>  	set _gitworktree [get_config core.worktree]
> +	if {$_gitworktree eq ""} {
> +		set _gitworktree [file dirname [file normalize $_gitdir]]
> +	}
>  }
>  if {$_prefix ne {}} {
>  	if {$_gitworktree eq {}} {

```
