diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-11-12 23:25:57 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2018-11-20 16:50:15 +0100 |
commit | 20d95d003e723b0dcf9123f6007e50c83405a5e7 (patch) | |
tree | dc3291ad66f2a9dba5472b607ba5eda27df83b12 | |
parent | dff944bff67e42a24b0f92b726ff2aabf54d1067 (diff) |
gits: when asking for reset --hard, also offer push -f
Change-Id: Iab38229ee7deaec91c342fa114028e222e652b60
-rwxr-xr-x | src/gits | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -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), '<empty> 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 |