diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-12-02 15:27:05 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-12-02 15:27:05 -0800 |
commit | ed56049058284d7df2ede1ce5f494a2a9a109479 (patch) | |
tree | 82b4c7424301443bedd745af75980766cfe36d60 /git-gui/lib | |
parent | 521ae135b7dcae27fb78e1b941f50158558108e6 (diff) | |
parent | 861c68e3b6a8d10af5517e6750a66407d32105aa (diff) | |
download | git-ed56049058284d7df2ede1ce5f494a2a9a109479.tar.gz |
Merge git://repo.or.cz/git-gui
* git://repo.or.cz/git-gui:
git-gui: Teach start_push_anywhere_action{} to notice when remote is a mirror.
Diffstat (limited to 'git-gui/lib')
-rw-r--r-- | git-gui/lib/transport.tcl | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/git-gui/lib/transport.tcl b/git-gui/lib/transport.tcl index e419d7810a..b18d9c7a1b 100644 --- a/git-gui/lib/transport.tcl +++ b/git-gui/lib/transport.tcl @@ -33,10 +33,15 @@ proc push_to {remote} { proc start_push_anywhere_action {w} { global push_urltype push_remote push_url push_thin push_tags global push_force + global repo_config + set is_mirror 0 set r_url {} switch -- $push_urltype { - remote {set r_url $push_remote} + remote { + set r_url $push_remote + catch {set is_mirror $repo_config(remote.$push_remote.mirror)} + } url {set r_url $push_url} } if {$r_url eq {}} return @@ -53,23 +58,29 @@ proc start_push_anywhere_action {w} { lappend cmd --tags } lappend cmd $r_url - set cnt 0 - foreach i [$w.source.l curselection] { - set b [$w.source.l get $i] - lappend cmd "refs/heads/$b:refs/heads/$b" - incr cnt - } - if {$cnt == 0} { - return - } elseif {$cnt == 1} { - set unit branch + if {$is_mirror} { + set cons [console::new \ + [mc "push %s" $r_url] \ + [mc "Mirroring to %s" $r_url]] } else { - set unit branches - } + set cnt 0 + foreach i [$w.source.l curselection] { + set b [$w.source.l get $i] + lappend cmd "refs/heads/$b:refs/heads/$b" + incr cnt + } + if {$cnt == 0} { + return + } elseif {$cnt == 1} { + set unit branch + } else { + set unit branches + } - set cons [console::new \ - [mc "push %s" $r_url] \ - [mc "Pushing %s %s to %s" $cnt $unit $r_url]] + set cons [console::new \ + [mc "push %s" $r_url] \ + [mc "Pushing %s %s to %s" $cnt $unit $r_url]] + } console::exec $cons $cmd destroy $w } |