git gui crashes ( v 1.8.5.2)
Hello,
git gui crashes on my Linux machin since I updated it to 1.8.5.2.
I had the message
Error in startup script: unknown option "-stretch"
while executing
".vpane.lower paneconfigure .vpane.lower.diff -stretch always"
invoked from within
"if {$use_ttk} {
.vpane.lower pane .vpane.lower.diff -weight 1 .vpane.lower pane .vpane.lower.commarea -weight 0
} else {
.vpane.lower paneconfigure..."
(file "git/libexec/git-core/git-gui" line 3233)
So, I reverted the change that has been made in git-gui/git-gui.sh (Diff and Commit Area)
I replaced
${NS}::panedwindow .vpane.lower -orient vertical ${NS}::frame .vpane.lower.commarea
${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 -height 500 .vpane.lower add .vpane.lower.diff
.vpane.lower add .vpane.lower.commarea
.vpane add .vpane.lower
by
${NS}::frame .vpane.lower -height 300 -width 400 ${NS}::frame .vpane.lower.commarea
${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 pack .vpane.lower.diff -fill both -expand 1
pack .vpane.lower.commarea -side bottom -fill x .vpane add .vpane.lower
if {!$use_ttk} {.vpane paneconfigure .vpane.lower -sticky nsew}
and now, git gui works as expected.
Regards,
Benoit
(just cc-ing some area experts)
Hi Benoît,
Quoted 1 line · Benoît Bourbié
git gui crashes on my Linux machin since I updated it to 1.8.5.2.
I assume you mean "master" and not 1.8.5.2, since v1.8.5.2 doesn't include the change 918dbf58 (git-gui: right half window is paned, 2013-08-21).
Quoted 34 lines
I had the message
Error in startup script: unknown option "-stretch"
while executing
".vpane.lower paneconfigure .vpane.lower.diff -stretch always"
invoked from within
"if {$use_ttk} {
.vpane.lower pane .vpane.lower.diff -weight 1 .vpane.lower pane .vpane.lower.commarea -weight 0
} else {
.vpane.lower paneconfigure..."(file "git/libexec/git-core/git-gui" line 3233)So, I reverted the change that has been made in
git-gui/git-gui.sh(Diff and Commit Area)I replaced
${NS}::panedwindow .vpane.lower -orient vertical ${NS}::frame .vpane.lower.commarea
${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 -height 500 .vpane.lower add .vpane.lower.diff
.vpane.lower add .vpane.lower.commarea
.vpane add .vpane.lowerby
${NS}::frame .vpane.lower -height 300 -width 400 ${NS}::frame .vpane.lower.commarea
${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 pack .vpane.lower.diff -fill both -expand 1
pack .vpane.lower.commarea -side bottom -fill x .vpane add .vpane.lower
if {!$use_ttk} {.vpane paneconfigure .vpane.lower -sticky nsew}
Quoted 1 line
and now, git gui works as expected.
Thanks,
Jonathan
Hi.
Quoted 3 lines · Jonathan Nieder
(just cc-ing some area experts)
Quoted 1 line · Benoît Bourbié
git gui crashes on my Linux machin since I updated it to 1.8.5.2.
I believe this happens at tk8.4 or earlier. I have not tested it there, and according to the manpages in Internet the older versions do not have the -stretch option.
Before I can find a system to test it, I think the panned right half should really be reverted for the older versions of tk. I remember it did not behave correctly without the stretch option.
Maybe, to avoid cluttering the code, panedwindow should nit be used at all without the ttk.
I'll try to submit a fix today.
Signature · 1 line
Max
PATCH 1/1 git-gui: fallback right pane to packed widgets with Tk 8.4
Since 918dbf58, git-gui crashes if started with Tk 8.4. The reason is that tk < 8.5 does not support -stretch option for panedwindow.
Without the option it's not possible to properly expand the right half - the commit area is expanded, while desired behavior is to expand the diff area. So the whole feature should be disabled with Tk
version less than 8.5.
--- git-gui/git-gui.sh | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-)
git-gui/git-gui.sh +21 -11
@@ -3196,18 +3196,28 @@ unset i # -- Diff and Commit Area # -${NS}::panedwindow .vpane.lower -orient vertical -${NS}::frame .vpane.lower.commarea -${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 -height 500 -.vpane.lower add .vpane.lower.diff -.vpane.lower add .vpane.lower.commarea -.vpane add .vpane.lower -if {$use_ttk} { - .vpane.lower pane .vpane.lower.diff -weight 1 - .vpane.lower pane .vpane.lower.commarea -weight 0 +if {$have_tk85} { + ${NS}::panedwindow .vpane.lower -orient vertical + ${NS}::frame .vpane.lower.commarea + ${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 -height 500 + .vpane.lower add .vpane.lower.diff + .vpane.lower add .vpane.lower.commarea + .vpane add .vpane.lower + if {$use_ttk} { + .vpane.lower pane .vpane.lower.diff -weight 1 + .vpane.lower pane .vpane.lower.commarea -weight 0 + } else { + .vpane.lower paneconfigure .vpane.lower.diff -stretch always + .vpane.lower paneconfigure .vpane.lower.commarea -stretch never + } } else { - .vpane.lower paneconfigure .vpane.lower.diff -stretch always - .vpane.lower paneconfigure .vpane.lower.commarea -stretch never + frame .vpane.lower -height 300 -width 400 + frame .vpane.lower.commarea + frame .vpane.lower.diff -relief sunken -borderwidth 1 + pack .vpane.lower.diff -fill both -expand 1 + pack .vpane.lower.commarea -side bottom -fill x + .vpane add .vpane.lower + .vpane paneconfigure .vpane.lower -sticky nsew } # -- Commit Area Buttons
Signature · 1 line
1.8.4.2.1566.g3c1a064
Re: [PATCH] git-gui: fallback right pane to packed widgets with Tk 8.4
Hi All,
Max, you are right, my TK version is 8.4.
I applied the patch and it now works perfectly.
Thanks!!
Benoît
Quoted 59 lines · Max Kirillov
Since
918dbf58, git-gui crashes if started with Tk 8.4. The reason is that tk < 8.5 does not support -stretch option for panedwindow.Without the option it's not possible to properly expand the right half - the commit area is expanded, while desired behavior is to expand the diff area. So the whole feature should be disabled with Tk
version less than 8.5.Signed-off-by Max Kirillov <[email protected]>--- git-gui/git-gui.sh | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-)git-gui/git-gui.sh +21
-12@@ -3196,18 +3196,28 @@ unset i # -- Diff and Commit Area # -${NS}::panedwindow .vpane.lower -orient vertical -${NS}::frame .vpane.lower.commarea -${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 -height 500 -.vpane.lower add .vpane.lower.diff -.vpane.lower add .vpane.lower.commarea -.vpane add .vpane.lower -if {$use_ttk} { - .vpane.lower pane .vpane.lower.diff -weight 1 - .vpane.lower pane .vpane.lower.commarea -weight 0 +if {$have_tk85} { + ${NS}::panedwindow .vpane.lower -orient vertical + ${NS}::frame .vpane.lower.commarea + ${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 -height 500 + .vpane.lower add .vpane.lower.diff + .vpane.lower add .vpane.lower.commarea + .vpane add .vpane.lower + if {$use_ttk} { + .vpane.lower pane .vpane.lower.diff -weight 1 + .vpane.lower pane .vpane.lower.commarea -weight 0 + } else { + .vpane.lower paneconfigure .vpane.lower.diff -stretch always + .vpane.lower paneconfigure .vpane.lower.commarea -stretch never + } } else { - .vpane.lower paneconfigure .vpane.lower.diff -stretch always - .vpane.lower paneconfigure .vpane.lower.commarea -stretch never + frame .vpane.lower -height 300 -width 400 + frame .vpane.lower.commarea + frame .vpane.lower.diff -relief sunken -borderwidth 1 + pack .vpane.lower.diff -fill both -expand 1 + pack .vpane.lower.commarea -side bottom -fill x + .vpane add .vpane.lower + .vpane paneconfigure .vpane.lower -sticky nsew } # -- Commit Area Buttons --1.8.4.2.1566.g3c1a064
Hello Jonathan,
Yes, after checking, you are absolutely right, I was on master.
:)
Quoted 49 lines · Jonathan Nieder
(just cc-ing some area experts)
Hi Benoît,Quoted 1 line · Benoît Bourbié
git gui crashes on my Linux machin since I updated it to 1.8.5.2.
I assume you mean "master" and not 1.8.5.2, since v1.8.5.2 doesn't include the change
918dbf58(git-gui: right half window is paned, 2013-08-21).Quoted 34 lines
I had the message
Error in startup script: unknown option "-stretch"
while executing
".vpane.lower paneconfigure .vpane.lower.diff -stretch always"
invoked from within
"if {$use_ttk} {
.vpane.lower pane .vpane.lower.diff -weight 1 .vpane.lower pane .vpane.lower.commarea -weight 0
} else {
.vpane.lower paneconfigure..."(file "git/libexec/git-core/git-gui" line 3233)So, I reverted the change that has been made in
git-gui/git-gui.sh(Diff and Commit Area)I replaced
${NS}::panedwindow .vpane.lower -orient vertical ${NS}::frame .vpane.lower.commarea
${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 -height 500 .vpane.lower add .vpane.lower.diff
.vpane.lower add .vpane.lower.commarea
.vpane add .vpane.lowerby
${NS}::frame .vpane.lower -height 300 -width 400 ${NS}::frame .vpane.lower.commarea
${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 pack .vpane.lower.diff -fill both -expand 1
pack .vpane.lower.commarea -side bottom -fill x .vpane add .vpane.lower
if {!$use_ttk} {.vpane paneconfigure .vpane.lower -sticky nsew}Quoted 1 line
and now, git gui works as expected.
Thanks,
Jonathan