2 # Copyright (c) 2008, Nanako Shiraishi
3 # Prime rerere database from existing merge commits
6 USAGE="$me rev-list-args"
10 . "$(git --exec-path)/git-sh-setup"
14 # Remember original branch
15 branch=$(git symbolic-ref -q HEAD) ||
16 original_HEAD=$(git rev-parse --verify HEAD) || {
17 echo >&2 "Not on any branch and no commit yet?"
21 mkdir -p "$GIT_DIR/rr-cache" || exit
23 git rev-list --parents "$@" |
24 while read commit parent1 other_parents
26 if test -z "$other_parents"
31 git checkout -q "$parent1^0"
32 if git merge $other_parents >/dev/null 2>&1
37 if test -s "$GIT_DIR/MERGE_RR"
39 git show -s --pretty=format:"Learning from %h %s" "$commit"
41 git checkout -q $commit -- .
49 git checkout "$original_HEAD"
51 git checkout "${branch#refs/heads/}"