Provide the user an option to overwrite existing resolutions using an `--overwrite` flag. This might be used, for example, if the user knows that they already have an entry in their rerere cache for a conflict, but wish to drop it and retrain based on the merge commit(s) passed to the rerere-train script. Signed-off-by: Raman Gupta <rocketraman@xxxxxxxxx> --- contrib/rerere-train.sh | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/contrib/rerere-train.sh b/contrib/rerere-train.sh index 52ad9e4..e25bf8a 100755 --- a/contrib/rerere-train.sh +++ b/contrib/rerere-train.sh @@ -3,10 +3,38 @@ # Prime rerere database from existing merge commits me=rerere-train -USAGE="$me rev-list-args" SUBDIRECTORY_OK=Yes -OPTIONS_SPEC= +OPTS_SPEC="\ +$me [--overwrite] <rev-list-args> +-- +h,help show the help +o,overwrite overwrite any existing rerere cache +" +eval "$(echo "$OPTS_SPEC" | git rev-parse --parseopt -- "$@" || echo exit $?)" + +overwrite=0 + +while test $# -gt 0 +do + opt="$1" + case "$opt" in + -o) + overwrite=1 + shift + shift + ;; + --) + shift + break + ;; + *) + break + exit 1 + ;; + esac +done + . "$(git --exec-path)/git-sh-setup" require_work_tree cd_to_toplevel @@ -34,6 +62,10 @@ do # Cleanly merges continue fi + if [ $overwrite == 1 ] + then + git rerere forget . + fi if test -s "$GIT_DIR/MERGE_RR" then git show -s --pretty=format:"Learning from %h %s" "$commit" -- 2.9.4