Re: [PATCH] git-gui: Look for gitk in $PATH, not $LIBEXEC/git-core
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Jul 29, 2008, 16:48 UTC
- Message-ID
- <20080729164856.GB1730@spearce.org>
- In-Reply-To
- <80915B5E107BED488500050294C6F48712137A@ex2k.bankofamerica.com>
"Murphy, John" <john.murphy@bankofamerica.com> wrote:
Show 13 quoted lines
> I have rebuilt git-gui with version 0.10.2.18.gc629 it is still not finding gitk. > I have done some debugging in proc _which > I have found the issue is with the following line: > > set p [file join $p $what$_search_exe] > > The variable $p = gitk.exe > > And there is no such animal > > When I copy gitk to gitk.exe in /usr/local/git/bin, it works fine. > > So, not sure if this is a git issue or a git-gui issue.
Since you are new to the list, I will politely point out we do not top-post. (http://www.html-faq.com/etiquette/?toppost) and much prefer inline posting. (Yea, I know, its Outlook. Switch to text only message format and then edit inline in the reply.)
This is definately a git-gui bug. _which should search not just .exe extensions, but also the base name itself in case it is a shell script or perl script. git-gui already has special cases to handle executing those through their interpreters even on a pure Win32 Tcl/Tk process.
Its wrong to install gitk as gitk.exe, it is not a Win32 executable process and the Windows kernel cannot load it into memory on its own.
Show 32 quoted lines
> From: spearce@spearce.org [mailto:spearce@spearce.org]
> Abhijit Menon-Sen <ams@toroid.org> wrote:
> > At 2008-07-24 09:01:48 -0400, john.murphy@bankofamerica.com wrote:
> > >
> > > I presume this was just an oversight when git- commands were removed
> > > from the bin directory.
> >
> > Looks like it. The following patch fixes it for me. Does it work for
> > you on Windows?
>
> Thanks.
>
> This patch is obviously correct on any platform except Mac OS X.
> On Mac OS X it gets confusing because [info nameofexecutable] is
> a wrapper .app which loads its own main script. That main script
> needs to use the gitk location it receives from git-gui, and not
> the location it computes from gitexecdir. So I'm following up
> your patch with this:
>
> diff --git a/macosx/AppMain.tcl b/macosx/AppMain.tcl
> index 41ca08e..ddbe633 100644
> --- a/macosx/AppMain.tcl
> +++ b/macosx/AppMain.tcl
> @@ -7,7 +7,7 @@ if {[string first -psn [lindex $argv 0]] == 0} {
> }
>
> if {[file tail [lindex $argv 0]] eq {gitk}} {
> - set argv0 [file join $gitexecdir gitk]
> + set argv0 [lindex $argv 0]
> set AppMain_source $argv0
> } else {
> set argv0 [file join $gitexecdir [file tail [lindex $argv 0]]]-- Shawn.