From 20d95d003e723b0dcf9123f6007e50c83405a5e7 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Mon, 12 Nov 2018 23:25:57 +0100 Subject: gits: when asking for reset --hard, also offer push -f Change-Id: Iab38229ee7deaec91c342fa114028e222e652b60 --- src/gits | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/gits b/src/gits index c7f5750..d47759f 100755 --- a/src/gits +++ b/src/gits @@ -238,16 +238,19 @@ def ask(git_dir, *question, valid_answers=('*',)): return answer -def ask_reset_hard(git_dir): +def ask_reset_hard_or_push_f(git_dir): do_reset = ask(git_dir, 'Diverged.', '%s: git reset --hard %s?' % ( orig_branch, upstream_branch), ' no', - 'OK yes (write OK in caps!)', - valid_answers=('', 'OK')) + 'OK yes, reset to upstream (write OK in caps!)', + 'P `push -f` to overwrite upstream (P in caps!)', + valid_answers=('', 'OK', 'P')) if do_reset == 'OK': git(git_dir, 'reset', '--hard', upstream_branch) + elif do_reset == 'P': + git(git_dir, 'push', '-f') def rebase(git_dir): @@ -287,7 +290,7 @@ def rebase(git_dir): # Diverged elif ahead and behind: - ask_reset_hard(git_dir) + ask_reset_hard_or_push_f(git_dir) # Behind elif behind: @@ -315,7 +318,7 @@ def rebase(git_dir): git(git_dir, 'commit', '-am', 'wip', may_fail=True) git(git_dir, 'checkout', orig_branch) - ask_reset_hard(git_dir) + ask_reset_hard_or_push_f(git_dir) return orig_branch -- cgit v1.2.3