git-gui: Add support for adding remotes
[gitweb.git] / lib / transport.tcl
index 1c7baef1732a63dc4a7a0e6b86d567616bd379f2..8e6a9d0a6010cf5efee069a2d488124bcbdb54cd 100644 (file)
@@ -3,7 +3,7 @@
 
 proc fetch_from {remote} {
        set w [console::new \
-               "fetch $remote" \
+               [mc "fetch %s" $remote] \
                [mc "Fetching new changes from %s" $remote]]
        set cmds [list]
        lappend cmds [list exec git fetch $remote]
@@ -15,14 +15,14 @@ proc fetch_from {remote} {
 
 proc prune_from {remote} {
        set w [console::new \
-               "remote prune $remote" \
+               [mc "remote prune %s" $remote] \
                [mc "Pruning tracking branches deleted from %s" $remote]]
        console::exec $w [list git remote prune $remote]
 }
 
 proc push_to {remote} {
        set w [console::new \
-               "push $remote" \
+               [mc "push %s" $remote] \
                [mc "Pushing changes to %s" $remote]]
        set cmd [list git push]
        lappend cmd -v
@@ -32,6 +32,7 @@ proc push_to {remote} {
 
 proc start_push_anywhere_action {w} {
        global push_urltype push_remote push_url push_thin push_tags
+       global push_force
 
        set r_url {}
        switch -- $push_urltype {
@@ -45,6 +46,9 @@ proc start_push_anywhere_action {w} {
        if {$push_thin} {
                lappend cmd --thin
        }
+       if {$push_force} {
+               lappend cmd --force
+       }
        if {$push_tags} {
                lappend cmd --tags
        }
@@ -64,7 +68,7 @@ proc start_push_anywhere_action {w} {
        }
 
        set cons [console::new \
-               "push $r_url" \
+               [mc "push %s" $r_url] \
                [mc "Pushing %s %s to %s" $cnt $unit $r_url]]
        console::exec $cons $cmd
        destroy $w
@@ -76,6 +80,7 @@ trace add variable push_remote write \
 proc do_push_anywhere {} {
        global all_remotes current_branch
        global push_urltype push_remote push_url push_thin push_tags
+       global push_force
 
        set w .push_setup
        toplevel $w
@@ -151,6 +156,10 @@ proc do_push_anywhere {} {
        pack $w.dest -anchor nw -fill x -pady 5 -padx 5
 
        labelframe $w.options -text [mc "Transfer Options"]
+       checkbutton $w.options.force \
+               -text [mc "Force overwrite existing branch (may discard changes)"] \
+               -variable push_force
+       grid $w.options.force -columnspan 2 -sticky w
        checkbutton $w.options.thin \
                -text [mc "Use thin pack (for slow network connections)"] \
                -variable push_thin
@@ -163,6 +172,7 @@ proc do_push_anywhere {} {
        pack $w.options -anchor nw -fill x -pady 5 -padx 5
 
        set push_url {}
+       set push_force 0
        set push_thin 0
        set push_tags 0