git-gui: Always use absolute path to all git executables
authorShawn O. Pearce <spearce@spearce.org>
Mon, 9 Jul 2007 05:17:09 +0000 (01:17 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Mon, 9 Jul 2007 05:17:09 +0000 (01:17 -0400)
commit0b81261622afad691501ee51d7811048cf4a5fce
tree0b2862469d7a162e11063bd2fe301c45331c27d2
parentb79223064e163aa0ce7f5b63d12158e87f8729e4
git-gui: Always use absolute path to all git executables

Rather than making the C library search for git every time we want
to execute it we now search for the main git wrapper at startup, do
symlink resolution, and then always use the absolute path that we
found to execute the binary later on.  This should save us some
cycles, especially on stat challenged systems like Cygwin/Win32.

While I was working on this change I also converted all of our
existing pipes ([open "| git ..."]) to use two new pipe wrapper
functions.  These functions take additional options like --nice
and --stderr which instructs Tcl to take special action, like
running the underlying git program through `nice` (if available)
or redirect stderr to stdout for capture in Tcl.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
13 files changed:
git-gui.sh
lib/blame.tcl
lib/branch.tcl
lib/browser.tcl
lib/checkout_op.tcl
lib/commit.tcl
lib/database.tcl
lib/diff.tcl
lib/index.tcl
lib/merge.tcl
lib/option.tcl
lib/remote.tcl
lib/remote_branch_delete.tcl