git-commit-vandalism/lib
Shawn O. Pearce 6f2a3fc812 git-gui: Optimize for newstyle refs/remotes layout
Most people using Git 1.5.x and later are using the newer style
of remotes layout where all of their tracking branches are in
refs/remotes and refs/heads contains only the user's own local
branches.

In such a situation we can avoid calling is_tracking_branch
for each head we are considering because we know that all of
the heads must be local branches if no fetch option or Pull:
line maps a branch into that namespace.

If however any remote maps a remote branch into a local
tracking branch that resides in refs/heads we do exactly
what we did before, which requires scanning through all
fetch lines in case any patterns are matched.

I also switched some regexp/regsub calls to string match
as this can be a faster operation for prefix matching.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-07-08 21:12:48 -04:00
..
blame.tcl Merge branch 'maint' 2007-07-08 21:10:03 -04:00
branch_create.tcl git-gui: Abstract the revision picker into a mega widget 2007-07-08 21:12:46 -04:00
branch_delete.tcl git-gui: Refactor the delete branch dialog to use class system 2007-07-08 21:12:47 -04:00
branch_rename.tcl Merge branch 'maint' 2007-06-11 23:58:11 -04:00
branch.tcl git-gui: Optimize for newstyle refs/remotes layout 2007-07-08 21:12:48 -04:00
browser.tcl git-gui: Save geometry before the window layout is damaged 2007-06-11 23:52:43 -04:00
choose_rev.tcl git-gui: Refactor the delete branch dialog to use class system 2007-07-08 21:12:47 -04:00
class.tcl git-gui: Teach class system to support [$this cmd] syntax 2007-07-08 21:12:45 -04:00
commit.tcl git-gui: Honor rerere.enabled configuration option 2007-07-08 17:41:24 -04:00
console.tcl git-gui: Save geometry before the window layout is damaged 2007-06-11 23:52:43 -04:00
database.tcl git-gui: Convert browser, console to "class" format 2007-05-08 21:38:54 -04:00
diff.tcl git-gui: Allow as few as 0 lines of diff context 2007-05-31 23:32:54 -04:00
error.tcl git-gui: Refactor into multiple files to save my sanity 2007-05-07 23:35:48 -04:00
index.tcl git-gui: Refactor into multiple files to save my sanity 2007-05-07 23:35:48 -04:00
merge.tcl git-gui: Unlock the index when cancelling merge dialog 2007-07-04 02:29:32 -04:00
option.tcl Merge branch 'maint' 2007-06-11 02:14:21 -04:00
remote_branch_delete.tcl git-gui: Correct resizing of remote branch delete dialog 2007-07-04 23:16:20 -04:00
remote.tcl git-gui: Optimize for newstyle refs/remotes layout 2007-07-08 21:12:48 -04:00
shortcut.tcl git-gui: Ensure windows shortcuts always have .bat extension 2007-07-06 04:02:18 -04:00
transport.tcl git-gui: GUI support for running 'git remote prune <name>' 2007-05-28 17:50:40 -04:00