git-gui: Consolidate hook execution code into a single function
commited76cb70f47225fc1a2ba4209b38b89be71adeb6
authorShawn O. Pearce <spearce@spearce.org>
Sun, 20 Jan 2008 19:46:59 +0000 (20 14:46 -0500)
committerShawn O. Pearce <spearce@spearce.org>
Mon, 21 Jan 2008 03:45:38 +0000 (20 22:45 -0500)
tree7d0c27745553bff1005741b9b40749cfb093f49c
parentc87238e19de70c1066e606df53f4f20f19621acd
git-gui: Consolidate hook execution code into a single function

The code we use to test if a hook is executable or not differs on
Cygwin from the normal POSIX case.  Rather then repeating that for
all three hooks we call in our commit code path we can place the
common logic into a global procedure and invoke it when necessary.

This also lets us get rid of the ugly "|& cat" we were using before
as we can now rely on the Tcl 8.4 feature of "2>@1" or fallback to
the "|& cat" when necessary.

The post-commit hook is now run through the same API, but its outcome
does not influence the commit status.  As a result we now show any of
the errors from the post-commit hook in a dialog window, instead of on
the user's tty that was used to launch git-gui.  This resolves a long
standing bug related to not getting errors out of the post-commit hook
when launched under git-gui.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui.sh
lib/commit.tcl
lib/error.tcl