git-svn: just use Digest::MD5 instead of requiring it
[gitweb.git] / git-rebase.sh
index c8bd0f99d1306cd311eaf45f73581efc8bb0e512..b51d19d12e6d5a108f13c4ec60c5f5a6e560ef47 100755 (executable)
@@ -45,6 +45,7 @@ do_merge=
 dotest=$GIT_DIR/.dotest-merge
 prec=4
 verbose=
+git_am_opt=
 
 continue_merge () {
        test -n "$prev_head" || die "prev_head must be defined"
@@ -213,6 +214,10 @@ do
        -v|--verbose)
                verbose=t
                ;;
+       -C*)
+               git_am_opt=$1
+               shift
+               ;;
        -*)
                usage
                ;;
@@ -249,7 +254,8 @@ fi
 git-update-index --refresh || exit
 diff=$(git-diff-index --cached --name-status -r HEAD)
 case "$diff" in
-?*)    echo "$diff"
+?*)    echo "cannot rebase: your index is not up-to-date"
+       echo "$diff"
        exit 1
        ;;
 esac
@@ -275,8 +281,12 @@ case "$#" in
        git-checkout "$2" || usage
        ;;
 *)
-       branch_name=`git symbolic-ref HEAD` || die "No current branch"
-       branch_name=`expr "z$branch_name" : 'zrefs/heads/\(.*\)'`
+       if branch_name=`git symbolic-ref -q HEAD`
+       then
+               branch_name=`expr "z$branch_name" : 'zrefs/heads/\(.*\)'`
+       else
+               branch_name=HEAD ;# detached
+       fi
        ;;
 esac
 branch=$(git-rev-parse --verify "${branch_name}^0") || exit
@@ -317,7 +327,7 @@ fi
 if test -z "$do_merge"
 then
        git-format-patch -k --stdout --full-index --ignore-if-in-upstream "$upstream"..ORIG_HEAD |
-       git am --binary -3 -k --resolvemsg="$RESOLVEMSG"
+       git am $git_am_opt --binary -3 -k --resolvemsg="$RESOLVEMSG"
        exit $?
 fi