From: Shawn O. Pearce Date: Wed, 13 Dec 2006 03:44:38 +0000 (-0500) Subject: git-gui: Show all fetched branches for remote pulls. X-Git-Tag: gitgui-0.6.0~143 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=51e7e568c0a7854b2f93b86d6085695ce80053cc;p=git.git git-gui: Show all fetched branches for remote pulls. Loop through every remote..fetch entry and add it as a valid option in the Pull menu. This way users can pull any remote branch that they track, without needing to leave the gui. Its a rather crude work around for not having a full merge interface. Signed-off-by: Shawn O. Pearce --- diff --git a/git-gui b/git-gui index 36979afd7..0c88e4c7c 100755 --- a/git-gui +++ b/git-gui @@ -1819,28 +1819,29 @@ proc populate_pull_menu {m} { global gitdir repo_config all_remotes disable_on_lock foreach remote $all_remotes { - set rb {} + set rb_list [list] if {[array get repo_config remote.$remote.url] ne {}} { if {[array get repo_config remote.$remote.fetch] ne {}} { - regexp {^([^:]+):} \ - [lindex $repo_config(remote.$remote.fetch) 0] \ - line rb + foreach line $repo_config(remote.$remote.fetch) { + if {[regexp {^([^:]+):} $line line rb]} { + lappend rb_list $rb + } + } } } else { catch { set fd [open [file join $gitdir remotes $remote] r] while {[gets $fd line] >= 0} { if {[regexp {^Pull:[ \t]*([^:]+):} $line line rb]} { - break + lappend rb_list $rb } } close $fd } } - set rb_short $rb - regsub ^refs/heads/ $rb {} rb_short - if {$rb_short ne {}} { + foreach rb $rb_list { + regsub ^refs/heads/ $rb {} rb_short $m add command \ -label "Branch $rb_short from $remote..." \ -command [list pull_remote $remote $rb] \