From c0d153295c6f9140e644aa740f588257aac1f825 Mon Sep 17 00:00:00 2001 From: Heiko Voigt Date: Fri, 4 Dec 2009 22:26:48 +0100 Subject: git gui: make current branch default in "remote delete branch" merge check We already do the same when locally deleting a branch. Signed-off-by: Heiko Voigt Signed-off-by: Shawn O. Pearce --- lib/remote_branch_delete.tcl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/remote_branch_delete.tcl b/lib/remote_branch_delete.tcl index 31e0947488..241642062e 100644 --- a/lib/remote_branch_delete.tcl +++ b/lib/remote_branch_delete.tcl @@ -250,6 +250,8 @@ method _write_url {args} { set urltype url } method _write_check_head {args} { set checktype head } method _write_head_list {args} { + global current_branch + $head_m delete 0 end foreach abr $head_list { $head_m insert end radiobutton \ @@ -258,7 +260,11 @@ method _write_head_list {args} { -variable @check_head } if {[lsearch -exact -sorted $head_list $check_head] < 0} { - set check_head {} + if {[lsearch -exact -sorted $head_list $current_branch] < 0} { + set check_head {} + } else { + set check_head $current_branch + } } } -- cgit v1.2.3 From 88520cadf902c8bc780394e1ddecc726534c3df9 Mon Sep 17 00:00:00 2001 From: Clemens Buchacher Date: Mon, 14 Sep 2009 00:20:44 +0200 Subject: git-gui: search 4 directories to improve statistic of gc hint On Windows, git-gui suggests running the garbage collector if it finds 1 or more files in .git/objects/42 (as opposed to 8 files on other platforms). The probability of that happening if the repo contains about 100 loose objects is 32%. The probability for the same to happen when searching 4 directories is only 8%, which is bit more reasonable. Also remove $objects_limit from the message, because we already know that we are above (or close to) that limit. Telling the user about that number does not really give him any useful information. The following octave script shows the probability for at least m*q objects to be found in q subdirectories of .git/objects if n is the total number of objects. q = 4; m = [1 2 8]; n = 0:10:2000; P = zeros(length(n), length(m)); for k = 1:length(n) P(k, :) = 1-binocdf(q*m-1, n(k), q/(256-q)); end plot(n, P); n \ q 1 4 50 18% 1% 100 32% 8% 200 54% 39% 500 86% 96% Signed-off-by: Clemens Buchacher Signed-off-by: Shawn O. Pearce --- lib/database.tcl | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/lib/database.tcl b/lib/database.tcl index a18ac8b430..d4e0bed0b6 100644 --- a/lib/database.tcl +++ b/lib/database.tcl @@ -89,27 +89,26 @@ proc do_fsck_objects {} { } proc hint_gc {} { - set object_limit 8 + set ndirs 1 + set limit 8 if {[is_Windows]} { - set object_limit 1 + set ndirs 4 + set limit 1 } - set objects_current [llength [glob \ - -directory [gitdir objects 42] \ + set count [llength [glob \ -nocomplain \ - -tails \ -- \ - *]] + [gitdir objects 4\[0-[expr {$ndirs-1}]\]/*]]] - if {$objects_current >= $object_limit} { - set objects_current [expr {$objects_current * 250}] - set object_limit [expr {$object_limit * 250}] + if {$count >= $limit * $ndirs} { + set objects_current [expr {$count * 256/$ndirs}] if {[ask_popup \ [mc "This repository currently has approximately %i loose objects. -To maintain optimal performance it is strongly recommended that you compress the database when more than %i loose objects exist. +To maintain optimal performance it is strongly recommended that you compress the database. -Compress the database now?" $objects_current $object_limit]] eq yes} { +Compress the database now?" $objects_current]] eq yes} { do_gc } } -- cgit v1.2.3 From 10852086d4dceee924000ef70388b00704f7b463 Mon Sep 17 00:00:00 2001 From: Alexander Gavrilov Date: Thu, 13 Nov 2008 22:02:09 +0300 Subject: git-gui: Increase blame viewer usability on MacOS. On MacOS raising a window causes the focus to be transferred to it -- although it may actually be a bug in the Tcl/Tk port. When this happens with the blame viewer tooltips, it makes the interface less usable, because Entry and Leave handlers on the text view cause the tip to disappear once the mouse is moved even 1 pixel. This commit makes the code raise the main window on MacOS when Tk 8.5 is used. This version seems to properly support wm transient by making the tip stay on top of the master, so reraising the master does not cause it to disappear. Thus the only remaining sign of problems is slight UI flicker when focus is momentarily transferred to the tip and back. Signed-off-by: Alexander Gavrilov Signed-off-by: Shawn O. Pearce --- lib/blame.tcl | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/blame.tcl b/lib/blame.tcl index 1f3b08f9ef..8525b79aaa 100644 --- a/lib/blame.tcl +++ b/lib/blame.tcl @@ -1245,6 +1245,18 @@ method _open_tooltip {cur_w} { $tooltip_t conf -state disabled _position_tooltip $this + + # On MacOS raising a window causes it to acquire focus. + # Tk 8.5 on MacOS seems to properly support wm transient, + # so we can safely counter the effect there. + if {$::have_tk85 && [is_MacOSX]} { + update + if {$w eq {}} { + raise . + } else { + raise $w + } + } } method _position_tooltip {} { @@ -1268,7 +1280,9 @@ method _position_tooltip {} { append g $pos_y wm geometry $tooltip_wm $g - raise $tooltip_wm + if {![is_MacOSX]} { + raise $tooltip_wm + } } method _hide_tooltip {} { -- cgit v1.2.3 From 60204ddb99187dd329000864a618e57742372d74 Mon Sep 17 00:00:00 2001 From: Jindrich Makovicka Date: Fri, 4 Dec 2009 10:28:44 +0100 Subject: git-gui: suppress RenderBadPicture X error caused by Tk bug Due to a bug in Tk, git-gui almost always (unless git-gui is closed right after starting) produces an X window error message on exit, something like: X Error of failed request: RenderBadPicture (invalid Picture parameter) Major opcode of failed request: 150 (RENDER) Minor opcode of failed request: 7 (RenderFreePicture) Picture id in failed request: 0x3a000dc Serial number of failed request: 1965 Current serial number in output stream: 1980 Respective Tk bug report is here: http://sourceforge.net/tracker/?func=detail&atid=112997&aid=1821174&group_id=12997 This bug is triggered only when the send command is blocked via rename send {} . The following patch re-enables send just before quiting git-gui to suppress the error. Signed-off-by: Jindrich Makovicka Signed-off-by: Shawn O. Pearce --- git-gui.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/git-gui.sh b/git-gui.sh index 037a1f2c21..718277a651 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -2052,6 +2052,11 @@ proc do_quit {{rc {1}}} { } set ret_code $rc + + # Briefly enable send again, working around Tk bug + # http://sourceforge.net/tracker/?func=detail&atid=112997&aid=1821174&group_id=12997 + tk appname [appname] + destroy . } -- cgit v1.2.3