{"thread":{"id":"15503","subject":"[RFC PATCH (GIT-GUI)] git-gui: Add more integration options to citool.","startedAt":"2008-09-12T18:43:49Z","lastAt":"2008-09-30T07:53:02Z","messageCount":5,"participants":["Alexander Gavrilov","Shawn O. Pearce"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"90590","messageId":"200809122243.50007.angavrilov@gmail.com","threadId":"15503","inReplyTo":null,"subject":"[RFC PATCH (GIT-GUI)] git-gui: Add more integration options to citool.","fromName":"Alexander Gavrilov","fromEmail":"angavrilov@gmail.com","sentAt":"2008-09-12T18:43:49Z","receivedAt":"2008-09-12T18:43:49Z","isPatch":true,"sender":{"key":"angavrilov@gmail.com","avatar":"https://avatars.githubusercontent.com/u/42666?v=4"},"body":"- Make citool return nonzero exit code if it did not commit.\n- Add a mode where it does not actually commit and simply\n  exits with zero code. Commit message is either disabled,\n  or simply dumped to GITGUI_EDITMSG before exiting.\n- Add an option to immediately start it in amend mode.\n\nRationale:\n\n1) Use 'git citool --nocommit' instead of mergetool in scripts.\n2) Use 'git citool --amend' to edit commits while rebasing.\n\nSigned-off-by: Alexander Gavrilov <angavrilov@gmail.com>\n---\n\n\tI think this functionality might be useful, in particular for some of\n\tmy own scripts. But I'm not sure if this is the best way to do it.\n\n\t-- Alexander\n\n\n git-gui.sh     |   81 +++++++++++++++++++++++++++++++++++++++++++++++++++++---\n lib/commit.tcl |    8 ++++-\n 2 files changed, 83 insertions(+), 6 deletions(-)\n\ndiff --git a/git-gui.sh b/git-gui.sh\nindex fb43255..91457a2 100755\n--- a/git-gui.sh\n+++ b/git-gui.sh\n@@ -961,10 +961,32 @@ blame {\n }\n citool {\n \tenable_option singlecommit\n+\tenable_option retcode\n \n \tdisable_option multicommit\n \tdisable_option branch\n \tdisable_option transport\n+\n+\twhile {[llength $argv] > 0} {\n+\t\tset a [lindex $argv 0]\n+\t\tswitch -- $a {\n+\t\t--amend {\n+\t\t\tenable_option initialamend\n+\t\t}\n+\t\t--nocommit {\n+\t\t\tenable_option nocommit\n+\t\t\tenable_option nocommitmsg\n+\t\t}\n+\t\t--commitmsg {\n+\t\t\tdisable_option nocommitmsg\n+\t\t}\n+\t\tdefault {\n+\t\t\tbreak\n+\t\t}\n+\t\t}\n+\n+\t\tset argv [lrange $argv 1 end]\n+\t}\n }\n }\n \n@@ -1121,6 +1143,20 @@ proc PARENT {} {\n \treturn $empty_tree\n }\n \n+proc force_amend {} {\n+\tglobal selected_commit_type\n+\tglobal HEAD PARENT MERGE_HEAD commit_type\n+\n+\trepository_state newType newHEAD newMERGE_HEAD\n+\tset HEAD $newHEAD\n+\tset PARENT $newHEAD\n+\tset MERGE_HEAD $newMERGE_HEAD\n+\tset commit_type $newType\n+\n+\tset selected_commit_type amend\n+\tdo_select_commit_type\n+}\n+\n proc rescan {after {honor_trustmtime 1}} {\n \tglobal HEAD PARENT MERGE_HEAD commit_type\n \tglobal ui_index ui_workdir ui_comm\n@@ -1767,11 +1803,19 @@ proc do_gitk {revs} {\n }\n \n set is_quitting 0\n+set ret_code    1\n \n-proc do_quit {} {\n+proc terminate_me {win} {\n+\tglobal ret_code\n+\tif {$win ne {.}} return\n+\texit $ret_code\n+}\n+\n+proc do_quit {{rc {1}}} {\n \tglobal ui_comm is_quitting repo_config commit_type\n \tglobal GITGUI_BCK_exists GITGUI_BCK_i\n \tglobal ui_comm_spell\n+\tglobal ret_code\n \n \tif {$is_quitting} return\n \tset is_quitting 1\n@@ -1826,6 +1870,7 @@ proc do_quit {} {\n \t\t}\n \t}\n \n+\tset ret_code $rc\n \tdestroy .\n }\n \n@@ -2228,6 +2273,14 @@ if {[is_enabled branch]} {\n \n # -- Commit Menu\n #\n+proc commit_btn_caption {} {\n+\tif {[is_enabled nocommit]} {\n+\t\treturn [mc \"Done\"]\n+\t} else {\n+\t\treturn [mc Commit@@verb]\n+\t}\n+}\n+\n if {[is_enabled multicommit] || [is_enabled singlecommit]} {\n \tmenu .mbar.commit\n \n@@ -2293,7 +2346,7 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {\n \t\t-command do_signoff \\\n \t\t-accelerator $M1T-S\n \n-\t.mbar.commit add command -label [mc Commit@@verb] \\\n+\t.mbar.commit add command -label [commit_btn_caption] \\\n \t\t-command do_commit \\\n \t\t-accelerator $M1T-Return\n \tlappend disable_on_lock \\\n@@ -2621,7 +2674,7 @@ button .vpane.lower.commarea.buttons.signoff -text [mc \"Sign Off\"] \\\n \t-command do_signoff\n pack .vpane.lower.commarea.buttons.signoff -side top -fill x\n \n-button .vpane.lower.commarea.buttons.commit -text [mc Commit@@verb] \\\n+button .vpane.lower.commarea.buttons.commit -text [commit_btn_caption] \\\n \t-command do_commit\n pack .vpane.lower.commarea.buttons.commit -side top -fill x\n lappend disable_on_lock \\\n@@ -2631,6 +2684,13 @@ button .vpane.lower.commarea.buttons.push -text [mc Push] \\\n \t-command do_push_anywhere\n pack .vpane.lower.commarea.buttons.push -side top -fill x\n \n+if {[is_enabled nocommitmsg]} {\n+\t.vpane.lower.commarea.buttons.signoff configure -state disabled\n+}\n+if {[is_enabled nocommit]} {\n+\t.vpane.lower.commarea.buttons.push configure -state disabled\n+}\n+\n # -- Commit Message Buffer\n #\n frame .vpane.lower.commarea.buffer\n@@ -3212,7 +3272,20 @@ lock_index begin-read\n if {![winfo ismapped .]} {\n \twm deiconify .\n }\n-after 1 do_rescan\n+after 1 {\n+\tif {[is_enabled initialamend]} {\n+\t\tforce_amend\n+\t} else {\n+\t\tdo_rescan\n+\t}\n+\n+\tif {[is_enabled nocommitmsg]} {\n+\t\t$ui_comm configure -state disabled -background gray\n+\t}\n+}\n if {[is_enabled multicommit]} {\n \tafter 1000 hint_gc\n }\n+if {[is_enabled retcode]} {\n+\tbind . <Destroy> {+terminate_me %W}\n+}\ndiff --git a/lib/commit.tcl b/lib/commit.tcl\nindex 2977315..3345149 100644\n--- a/lib/commit.tcl\n+++ b/lib/commit.tcl\n@@ -168,7 +168,7 @@ File %s cannot be committed by this program.\n \t\t}\n \t\t}\n \t}\n-\tif {!$files_ready && ![string match *merge $curType]} {\n+\tif {!$files_ready && ![string match *merge $curType] && ![is_enabled nocommit]} {\n \t\tinfo_popup [mc \"No changes to commit.\n \n You must stage at least 1 file before you can commit.\n@@ -177,6 +177,8 @@ You must stage at least 1 file before you can commit.\n \t\treturn\n \t}\n \n+\tif {[is_enabled nocommitmsg]} { do_quit 0 }\n+\n \t# -- A message is required.\n \t#\n \tset msg [string trim [$ui_comm get 1.0 end]]\n@@ -212,6 +214,8 @@ A good commit message has the following format:\n \tputs $msg_wt $msg\n \tclose $msg_wt\n \n+\tif {[is_enabled nocommit]} { do_quit 0 }\n+\n \t# -- Run the pre-commit hook.\n \t#\n \tset fd_ph [githook_read pre-commit]\n@@ -410,7 +414,7 @@ A rescan will be automatically started now.\n \t\tset ::GITGUI_BCK_exists 0\n \t}\n \n-\tif {[is_enabled singlecommit]} do_quit\n+\tif {[is_enabled singlecommit]} { do_quit 0 }\n \n \t# -- Update in memory status\n \t#\n-- \n1.6.0.20.g6148bc\n"},{"id":"91493","messageId":"20080924165201.GV3669@spearce.org","threadId":"15503","inReplyTo":"200809122243.50007.angavrilov@gmail.com","subject":"Re: [RFC PATCH (GIT-GUI)] git-gui: Add more integration options to citool.","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-09-24T16:52:01Z","receivedAt":"2008-09-24T16:52:01Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Alexander Gavrilov <angavrilov@gmail.com> wrote:\n> - Make citool return nonzero exit code if it did not commit.\n> - Add a mode where it does not actually commit and simply\n>   exits with zero code. Commit message is either disabled,\n>   or simply dumped to GITGUI_EDITMSG before exiting.\n> - Add an option to immediately start it in amend mode.\n...\n> \tI think this functionality might be useful, in particular for some of\n> \tmy own scripts. But I'm not sure if this is the best way to do it.\n\nThis looks good to me, but I think we may want to add this as a\nfollow-up patch.  Thoughts?\n\n--8<--\ngit-gui: Hide commit related UI during citool --nocommit\n\nIf the user started git-gui as \"git citool --nocommit\" then they\ndon't need the new commit / amend commit radio buttons, or the sign\noff button in the UI.  Rather than use up space with options the\nuser cannot activate they are simply not installed into the UI.\n\nSigned-off-by: Shawn O. Pearce <spearce@spearce.org>\n---\n git-gui.sh |  104 ++++++++++++++++++++++++++++++++---------------------------\n 1 files changed, 56 insertions(+), 48 deletions(-)\n\ndiff --git a/git-gui.sh b/git-gui.sh\nindex c4ccc66..1939001 100755\n--- a/git-gui.sh\n+++ b/git-gui.sh\n@@ -2271,23 +2271,25 @@ proc commit_btn_caption {} {\n if {[is_enabled multicommit] || [is_enabled singlecommit]} {\n \tmenu .mbar.commit\n \n-\t.mbar.commit add radiobutton \\\n-\t\t-label [mc \"New Commit\"] \\\n-\t\t-command do_select_commit_type \\\n-\t\t-variable selected_commit_type \\\n-\t\t-value new\n-\tlappend disable_on_lock \\\n-\t\t[list .mbar.commit entryconf [.mbar.commit index last] -state]\n-\n-\t.mbar.commit add radiobutton \\\n-\t\t-label [mc \"Amend Last Commit\"] \\\n-\t\t-command do_select_commit_type \\\n-\t\t-variable selected_commit_type \\\n-\t\t-value amend\n-\tlappend disable_on_lock \\\n-\t\t[list .mbar.commit entryconf [.mbar.commit index last] -state]\n-\n-\t.mbar.commit add separator\n+\tif {![is_enabled nocommit]} {\n+\t\t.mbar.commit add radiobutton \\\n+\t\t\t-label [mc \"New Commit\"] \\\n+\t\t\t-command do_select_commit_type \\\n+\t\t\t-variable selected_commit_type \\\n+\t\t\t-value new\n+\t\tlappend disable_on_lock \\\n+\t\t\t[list .mbar.commit entryconf [.mbar.commit index last] -state]\n+\n+\t\t.mbar.commit add radiobutton \\\n+\t\t\t-label [mc \"Amend Last Commit\"] \\\n+\t\t\t-command do_select_commit_type \\\n+\t\t\t-variable selected_commit_type \\\n+\t\t\t-value amend\n+\t\tlappend disable_on_lock \\\n+\t\t\t[list .mbar.commit entryconf [.mbar.commit index last] -state]\n+\n+\t\t.mbar.commit add separator\n+\t}\n \n \t.mbar.commit add command -label [mc Rescan] \\\n \t\t-command ui_do_rescan \\\n@@ -2329,9 +2331,11 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {\n \n \t.mbar.commit add separator\n \n-\t.mbar.commit add command -label [mc \"Sign Off\"] \\\n-\t\t-command do_signoff \\\n-\t\t-accelerator $M1T-S\n+\tif {![is_enabled nocommit]} {\n+\t\t.mbar.commit add command -label [mc \"Sign Off\"] \\\n+\t\t\t-command do_signoff \\\n+\t\t\t-accelerator $M1T-S\n+\t}\n \n \t.mbar.commit add command -label [commit_btn_caption] \\\n \t\t-command do_commit \\\n@@ -2657,9 +2661,11 @@ pack .vpane.lower.commarea.buttons.incall -side top -fill x\n lappend disable_on_lock \\\n \t{.vpane.lower.commarea.buttons.incall conf -state}\n \n-button .vpane.lower.commarea.buttons.signoff -text [mc \"Sign Off\"] \\\n-\t-command do_signoff\n-pack .vpane.lower.commarea.buttons.signoff -side top -fill x\n+if {![is_enabled nocommit]} {\n+\tbutton .vpane.lower.commarea.buttons.signoff -text [mc \"Sign Off\"] \\\n+\t\t-command do_signoff\n+\tpack .vpane.lower.commarea.buttons.signoff -side top -fill x\n+}\n \n button .vpane.lower.commarea.buttons.commit -text [commit_btn_caption] \\\n \t-command do_commit\n@@ -2667,15 +2673,10 @@ pack .vpane.lower.commarea.buttons.commit -side top -fill x\n lappend disable_on_lock \\\n \t{.vpane.lower.commarea.buttons.commit conf -state}\n \n-button .vpane.lower.commarea.buttons.push -text [mc Push] \\\n-\t-command do_push_anywhere\n-pack .vpane.lower.commarea.buttons.push -side top -fill x\n-\n-if {[is_enabled nocommitmsg]} {\n-\t.vpane.lower.commarea.buttons.signoff configure -state disabled\n-}\n-if {[is_enabled nocommit]} {\n-\t.vpane.lower.commarea.buttons.push configure -state disabled\n+if {![is_enabled nocommit]} {\n+\tbutton .vpane.lower.commarea.buttons.push -text [mc Push] \\\n+\t\t-command do_push_anywhere\n+\tpack .vpane.lower.commarea.buttons.push -side top -fill x\n }\n \n # -- Commit Message Buffer\n@@ -2684,20 +2685,24 @@ frame .vpane.lower.commarea.buffer\n frame .vpane.lower.commarea.buffer.header\n set ui_comm .vpane.lower.commarea.buffer.t\n set ui_coml .vpane.lower.commarea.buffer.header.l\n-radiobutton .vpane.lower.commarea.buffer.header.new \\\n-\t-text [mc \"New Commit\"] \\\n-\t-command do_select_commit_type \\\n-\t-variable selected_commit_type \\\n-\t-value new\n-lappend disable_on_lock \\\n-\t[list .vpane.lower.commarea.buffer.header.new conf -state]\n-radiobutton .vpane.lower.commarea.buffer.header.amend \\\n-\t-text [mc \"Amend Last Commit\"] \\\n-\t-command do_select_commit_type \\\n-\t-variable selected_commit_type \\\n-\t-value amend\n-lappend disable_on_lock \\\n-\t[list .vpane.lower.commarea.buffer.header.amend conf -state]\n+\n+if {![is_enabled nocommit]} {\n+\tradiobutton .vpane.lower.commarea.buffer.header.new \\\n+\t\t-text [mc \"New Commit\"] \\\n+\t\t-command do_select_commit_type \\\n+\t\t-variable selected_commit_type \\\n+\t\t-value new\n+\tlappend disable_on_lock \\\n+\t\t[list .vpane.lower.commarea.buffer.header.new conf -state]\n+\tradiobutton .vpane.lower.commarea.buffer.header.amend \\\n+\t\t-text [mc \"Amend Last Commit\"] \\\n+\t\t-command do_select_commit_type \\\n+\t\t-variable selected_commit_type \\\n+\t\t-value amend\n+\tlappend disable_on_lock \\\n+\t\t[list .vpane.lower.commarea.buffer.header.amend conf -state]\n+}\n+\n label $ui_coml \\\n \t-anchor w \\\n \t-justify left\n@@ -2715,8 +2720,11 @@ proc trace_commit_type {varname args} {\n }\n trace add variable commit_type write trace_commit_type\n pack $ui_coml -side left -fill x\n-pack .vpane.lower.commarea.buffer.header.amend -side right\n-pack .vpane.lower.commarea.buffer.header.new -side right\n+\n+if {![is_enabled nocommit]} {\n+\tpack .vpane.lower.commarea.buffer.header.amend -side right\n+\tpack .vpane.lower.commarea.buffer.header.new -side right\n+}\n \n text $ui_comm -background white -foreground black \\\n \t-borderwidth 1 \\\n-- \n1.6.0.2.471.g47a76\n\n\n\n-- \nShawn.\n"},{"id":"91672","messageId":"200809261419.41392.angavrilov@gmail.com","threadId":"15503","inReplyTo":"20080924165201.GV3669@spearce.org","subject":"Re: [RFC PATCH (GIT-GUI)] git-gui: Add more integration options to citool.","fromName":"Alexander Gavrilov","fromEmail":"angavrilov@gmail.com","sentAt":"2008-09-26T10:19:40Z","receivedAt":"2008-09-26T10:19:40Z","isPatch":true,"sender":{"key":"angavrilov@gmail.com","avatar":"https://avatars.githubusercontent.com/u/42666?v=4"},"body":"On Wednesday 24 September 2008 20:52:01 Shawn O. Pearce wrote:\n> Alexander Gavrilov <angavrilov@gmail.com> wrote:\n> > - Make citool return nonzero exit code if it did not commit.\n> > - Add a mode where it does not actually commit and simply\n> >   exits with zero code. Commit message is either disabled,\n> >   or simply dumped to GITGUI_EDITMSG before exiting.\n> > - Add an option to immediately start it in amend mode.\n> ...\n> > \tI think this functionality might be useful, in particular for some of\n> > \tmy own scripts. But I'm not sure if this is the best way to do it.\n> \n> This looks good to me, but I think we may want to add this as a\n> follow-up patch.  Thoughts?\n> \n> --8<--\n> git-gui: Hide commit related UI during citool --nocommit\n> \n> If the user started git-gui as \"git citool --nocommit\" then they\n> don't need the new commit / amend commit radio buttons, or the sign\n> off button in the UI.  Rather than use up space with options the\n> user cannot activate they are simply not installed into the UI.\n> \n> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>\n> ---\n\nI believe that the 'Sign Off' button should better be controlled by the nocommitmsg\noption; otherwise this looks good to me. But I'm not the best thinker at the\nmoment (had a cold).\n\nAlexander\n"},{"id":"91689","messageId":"20080926144536.GA3669@spearce.org","threadId":"15503","inReplyTo":"200809261419.41392.angavrilov@gmail.com","subject":"Re: [RFC PATCH (GIT-GUI)] git-gui: Add more integration options to citool.","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-09-26T14:45:36Z","receivedAt":"2008-09-26T14:45:36Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Alexander Gavrilov <angavrilov@gmail.com> wrote:\n> On Wednesday 24 September 2008 20:52:01 Shawn O. Pearce wrote:\n> > \n> > --8<--\n> > git-gui: Hide commit related UI during citool --nocommit\n> \n> I believe that the 'Sign Off' button should better be controlled by the nocommitmsg\n> option; otherwise this looks good to me. But I'm not the best thinker at the\n> moment (had a cold).\n\nSince I've already pushed that patch in both git-gui.git and git.git\nhow is this as a followup?\n\n--8<--\ngit-gui: Show/hide \"Sign Off\" based on nocommitmsg option\n\nIf citool --nocommit is invoked we hide the Sign Off features, as\nthe commit message area is not editable.  But we really want the\nselection tied to the message area's editing ability.\n\nSuggested-by: Alexander Gavrilov <angavrilov@gmail.com>\nSigned-off-by: Shawn O. Pearce <spearce@spearce.org>\n---\n git-gui.sh |    4 ++--\n 1 files changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/git-gui.sh b/git-gui.sh\nindex 4085e8f..09ce410 100755\n--- a/git-gui.sh\n+++ b/git-gui.sh\n@@ -2413,7 +2413,7 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {\n \n \t.mbar.commit add separator\n \n-\tif {![is_enabled nocommit]} {\n+\tif {![is_enabled nocommitmsg]} {\n \t\t.mbar.commit add command -label [mc \"Sign Off\"] \\\n \t\t\t-command do_signoff \\\n \t\t\t-accelerator $M1T-S\n@@ -2743,7 +2743,7 @@ pack .vpane.lower.commarea.buttons.incall -side top -fill x\n lappend disable_on_lock \\\n \t{.vpane.lower.commarea.buttons.incall conf -state}\n \n-if {![is_enabled nocommit]} {\n+if {![is_enabled nocommitmsg]} {\n \tbutton .vpane.lower.commarea.buttons.signoff -text [mc \"Sign Off\"] \\\n \t\t-command do_signoff\n \tpack .vpane.lower.commarea.buttons.signoff -side top -fill x\n-- \n1.6.0.2.508.g2bf53a\n\n\n-- \nShawn.\n"},{"id":"91903","messageId":"200809301153.02214.angavrilov@gmail.com","threadId":"15503","inReplyTo":"20080926144536.GA3669@spearce.org","subject":"Re: [RFC PATCH (GIT-GUI)] git-gui: Add more integration options to citool.","fromName":"Alexander Gavrilov","fromEmail":"angavrilov@gmail.com","sentAt":"2008-09-30T07:53:02Z","receivedAt":"2008-09-30T07:53:02Z","isPatch":true,"sender":{"key":"angavrilov@gmail.com","avatar":"https://avatars.githubusercontent.com/u/42666?v=4"},"body":"On Friday 26 September 2008 18:45:36 Shawn O. Pearce wrote:\n> Alexander Gavrilov <angavrilov@gmail.com> wrote:\n> > On Wednesday 24 September 2008 20:52:01 Shawn O. Pearce wrote:\n> > > \n> > > --8<--\n> > > git-gui: Hide commit related UI during citool --nocommit\n> > \n> > I believe that the 'Sign Off' button should better be controlled by the nocommitmsg\n> > option; otherwise this looks good to me. But I'm not the best thinker at the\n> > moment (had a cold).\n> \n> Since I've already pushed that patch in both git-gui.git and git.git\n> how is this as a followup?\n\nYes, it does what I was thinking of.\n \n> --8<--\n> git-gui: Show/hide \"Sign Off\" based on nocommitmsg option\n> \n> If citool --nocommit is invoked we hide the Sign Off features, as\n> the commit message area is not editable.  But we really want the\n> selection tied to the message area's editing ability.\n> \n> Suggested-by: Alexander Gavrilov <angavrilov@gmail.com>\n> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>\n> ---\n>  git-gui.sh |    4 ++--\n>  1 files changed, 2 insertions(+), 2 deletions(-)\n> \n> diff --git a/git-gui.sh b/git-gui.sh\n> index 4085e8f..09ce410 100755\n> --- a/git-gui.sh\n> +++ b/git-gui.sh\n> @@ -2413,7 +2413,7 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {\n>  \n>  \t.mbar.commit add separator\n>  \n> -\tif {![is_enabled nocommit]} {\n> +\tif {![is_enabled nocommitmsg]} {\n>  \t\t.mbar.commit add command -label [mc \"Sign Off\"] \\\n>  \t\t\t-command do_signoff \\\n>  \t\t\t-accelerator $M1T-S\n> @@ -2743,7 +2743,7 @@ pack .vpane.lower.commarea.buttons.incall -side top -fill x\n>  lappend disable_on_lock \\\n>  \t{.vpane.lower.commarea.buttons.incall conf -state}\n>  \n> -if {![is_enabled nocommit]} {\n> +if {![is_enabled nocommitmsg]} {\n>  \tbutton .vpane.lower.commarea.buttons.signoff -text [mc \"Sign Off\"] \\\n>  \t\t-command do_signoff\n>  \tpack .vpane.lower.commarea.buttons.signoff -side top -fill x\n> -- \n> 1.6.0.2.508.g2bf53a\n> \n> \n"}]}