git-gui: Enhance choose_rev to handle hundreds of branches
authorShawn O. Pearce <spearce@spearce.org>
Wed, 4 Jul 2007 20:38:13 +0000 (16:38 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Mon, 9 Jul 2007 01:12:52 +0000 (21:12 -0400)
commit7618e6b1c1676dfdc2cc4c8af9e259c3e885825f
treefb155bcc49cb81bbcf7d4a98861ff2a5432783aa
parent774173aa5f24023a82ce79f2a71fe3f664b747ad
git-gui: Enhance choose_rev to handle hundreds of branches

One of my production repositories has hundreds of remote tracking
branches.  Trying to navigate these through a popup menu is just
not possible.  The list is far larger than the screen and it does
not scroll fast enough to efficiently select a branch name when
trying to create a branch or delete a branch.

This is major rewrite of the revision chooser mega-widget.  We
now use a single listbox for all three major types of named refs
(heads, tracking branches, tags) and a radio button group to pick
which of those namespaces should be shown in the listbox.  A filter
field is shown to the right allowing the end-user to key in a glob
specification to filter the list they are viewing.  The filter is
always taken as substring, so we assume * both starts and ends the
pattern the user wanted but otherwise treat it as a glob pattern.

This new picker works out really nicely.  What used to take me at
least a minute to find and select a branch now takes mere seconds.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
lib/branch_create.tcl
lib/branch_delete.tcl
lib/choose_rev.tcl