summaryrefslogtreecommitdiff
path: root/lib/error.tcl
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2008-01-20 19:46:59 (GMT)
committerShawn O. Pearce <spearce@spearce.org>2008-01-21 03:45:38 (GMT)
commited76cb70f47225fc1a2ba4209b38b89be71adeb6 (patch)
tree7d0c27745553bff1005741b9b40749cfb093f49c /lib/error.tcl
parentc87238e19de70c1066e606df53f4f20f19621acd (diff)
downloadgit-ed76cb70f47225fc1a2ba4209b38b89be71adeb6.zip
git-ed76cb70f47225fc1a2ba4209b38b89be71adeb6.tar.gz
git-ed76cb70f47225fc1a2ba4209b38b89be71adeb6.tar.bz2
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>
Diffstat (limited to 'lib/error.tcl')
-rw-r--r--lib/error.tcl16
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/error.tcl b/lib/error.tcl
index 712d217..0fdd753 100644
--- a/lib/error.tcl
+++ b/lib/error.tcl
@@ -62,7 +62,7 @@ proc ask_popup {msg} {
eval $cmd
}
-proc hook_failed_popup {hook msg} {
+proc hook_failed_popup {hook msg {is_fatal 1}} {
set w .hookfail
toplevel $w
@@ -77,14 +77,16 @@ proc hook_failed_popup {hook msg} {
-width 80 -height 10 \
-font font_diff \
-yscrollcommand [list $w.m.sby set]
- label $w.m.l2 \
- -text [mc "You must correct the above errors before committing."] \
- -anchor w \
- -justify left \
- -font font_uibold
scrollbar $w.m.sby -command [list $w.m.t yview]
pack $w.m.l1 -side top -fill x
- pack $w.m.l2 -side bottom -fill x
+ if {$is_fatal} {
+ label $w.m.l2 \
+ -text [mc "You must correct the above errors before committing."] \
+ -anchor w \
+ -justify left \
+ -font font_uibold
+ pack $w.m.l2 -side bottom -fill x
+ }
pack $w.m.sby -side right -fill y
pack $w.m.t -side left -fill both -expand 1
pack $w.m -side top -fill both -expand 1 -padx 5 -pady 10