Merge branch 'master' of git://git.kernel.org/pub/scm/gitk/gitk
[gitweb.git] / git-gui / lib / transport.tcl
index c0e7d20fce67349938373c0cfdf879aa3137d18f..3a22bd40d4df6f18204afc154cef82d5e3d52f58 100644 (file)
@@ -5,9 +5,19 @@ proc fetch_from {remote} {
        set w [console::new \
                "fetch $remote" \
                "Fetching new changes from $remote"]
-       set cmd [list git fetch]
-       lappend cmd $remote
-       console::exec $w $cmd
+       set cmds [list]
+       lappend cmds [list exec git fetch $remote]
+       if {[is_config_true gui.pruneduringfetch]} {
+               lappend cmds [list exec git remote prune $remote]
+       }
+       console::chain $w $cmds
+}
+
+proc prune_from {remote} {
+       set w [console::new \
+               "remote prune $remote" \
+               "Pruning tracking branches deleted from $remote"]
+       console::exec $w [list git remote prune $remote]
 }
 
 proc push_to {remote} {
@@ -64,7 +74,7 @@ trace add variable push_remote write \
        [list radio_selector push_urltype remote]
 
 proc do_push_anywhere {} {
-       global all_heads all_remotes current_branch
+       global all_remotes current_branch
        global push_urltype push_remote push_url push_thin push_tags
 
        set w .push_setup
@@ -91,7 +101,7 @@ proc do_push_anywhere {} {
                -width 70 \
                -selectmode extended \
                -yscrollcommand [list $w.source.sby set]
-       foreach h $all_heads {
+       foreach h [load_all_heads] {
                $w.source.l insert end $h
                if {$h eq $current_branch} {
                        $w.source.l select set end