Merge branch 'ph/rebase-preserve-all-merges' into maint
[git] / git-rebase--am.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2010 Junio C Hamano.
4 #
5
6 case "$action" in
7 continue)
8         git am --resolved --resolvemsg="$resolvemsg" &&
9         move_to_original_branch
10         exit
11         ;;
12 skip)
13         git am --skip --resolvemsg="$resolvemsg" &&
14         move_to_original_branch
15         exit
16         ;;
17 esac
18
19 test -n "$rebase_root" && root_flag=--root
20
21 if test -n "$keep_empty"
22 then
23         # we have to do this the hard way.  git format-patch completely squashes
24         # empty commits and even if it didn't the format doesn't really lend
25         # itself well to recording empty patches.  fortunately, cherry-pick
26         # makes this easy
27         git cherry-pick --allow-empty "$revisions"
28 else
29         git format-patch -k --stdout --full-index --ignore-if-in-upstream \
30                 --src-prefix=a/ --dst-prefix=b/ \
31                 --no-renames $root_flag "$revisions" |
32         git am $git_am_opt --rebasing --resolvemsg="$resolvemsg"
33 fi && move_to_original_branch
34
35 ret=$?
36 test 0 != $ret -a -d "$state_dir" && write_basic_state
37 exit $ret