Code

git-gui: Make sure remotes are loaded when picking revisions
authorShawn O. Pearce <spearce@spearce.org>
Mon, 30 Jul 2007 01:26:42 +0000 (21:26 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Mon, 30 Jul 2007 03:44:51 +0000 (23:44 -0400)
If we are started for only a blame/browser/citool run we don't
usually initialize the list of remotes, or determine which refs
are tracking branches and which are local branch heads.  This is
because some of that work is relatively expensive and is usually
not going to be needed if we are started only for a blame, or to
make a single commit.

However by not loading the remote configuration we were crashing
if the user tried to open a browser for another branch through
the Repository menu, as our load_all_heads procedure was unable
to decide which refs/heads/ items were actually local heads.  We
now force all remote configuration data to be loaded if we have
not done so already and we are trying to create a revision mega
widget.

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

index 4147b7c5bcc55e46aea4ee516359308fdc394a77..ec064b3e13a6b2e6ab0e3ee05ab7a55cab8aa4bc 100644 (file)
@@ -34,6 +34,10 @@ proc new_unmerged {path {title {}}} {
 constructor _new {path unmerged_only title} {
        global current_branch is_detached
 
+       if {![info exists ::all_remotes]} {
+               load_all_remotes
+       }
+
        set w $path
 
        if {$title ne {}} {