Skip to contentSkip to conversation

git gui crashes ( v 1.8.5.2)

PATCH In review Benoît Bourbié 3 participants 6 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw

(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.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}

Quoted 1 line

and now, git gui works as expected.

Thanks,
Jonathan

#2 lore raw

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
#3 lore raw

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
index e2e710e..147be8c 100755
@@ -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
#4 lore raw

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.

---
 git-gui/git-gui.sh | 32 +++++++++++++++++++++-----------
 1 file changed, 21 insertions(+), 11 deletions(-)
git-gui/git-gui.sh +21 -12
index e2e710e..147be8c 100755
@@ -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

#5 lore raw
In reply to Jonathan Nieder

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.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}

Quoted 1 line

and now, git gui works as expected.

Thanks,
Jonathan