diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2007-10-02 12:52:22 -0400 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2007-10-03 00:21:50 -0400 |
commit | 1952aa1d5735ccbedd832620e43db3e03fc77088 (patch) | |
tree | 66e919f794f04783a5a9154295b99dbdc0a02b52 /lib | |
parent | Merge branch 'maint' (diff) | |
download | tgif-1952aa1d5735ccbedd832620e43db3e03fc77088.tar.xz |
git-gui: Allow forced push into remote repository
Some workflows allow the user to forcefully update a remote branch,
such as in a "proposed updates" (aka "pu") branch where the branch
is rewound and rebuilt on a daily basis against the current master
branch. In such a case the "--force" or leading + must be used to
make git-push execute anyway, even though it may be discarding one
or more commits on the remote side.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/transport.tcl | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/transport.tcl b/lib/transport.tcl index 3b05b8fc2c..8e6a9d0a60 100644 --- a/lib/transport.tcl +++ b/lib/transport.tcl @@ -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 } @@ -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 |