summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 8f9bfb6)
raw | patch | inline | side by side (parent: 8f9bfb6)
author | Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> | |
Sun, 6 Feb 2011 18:43:42 +0000 (13:43 -0500) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Thu, 10 Feb 2011 22:08:08 +0000 (14:08 -0800) |
Remove the parsing and validation of references (onto, upstream, branch)
from git-rebase--interactive.sh and rely on the information exported from
git-rebase.sh.
By using the parsing of the --onto parameter in git-rebase.sh, this
improves the error message when the parameter is invalid.
Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
from git-rebase--interactive.sh and rely on the information exported from
git-rebase.sh.
By using the parsing of the --onto parameter in git-rebase.sh, this
improves the error message when the parameter is invalid.
Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-rebase--interactive.sh | patch | blob | history | |
git-rebase.sh | patch | blob | history |
index 0f04f36eba091653f53511acd4c6d978d074c5c6..fbe12a64ec746401d5e398a476045d675fa828db 100755 (executable)
rm -f "$1.sq" "$1.rearranged"
}
-LF='
-'
-parse_onto () {
- case "$1" in
- *...*)
- if left=${1%...*} right=${1#*...} &&
- onto=$(git merge-base --all ${left:-HEAD} ${right:-HEAD})
- then
- case "$onto" in
- ?*"$LF"?* | '')
- exit 1 ;;
- esac
- echo "$onto"
- exit 0
- fi
- esac
- git rev-parse --verify "$1^0"
-}
-
case "$action" in
continue)
get_saved_options
;;
esac
-if test -n "$onto"
-then
- onto=$(parse_onto "$onto") || die "Does not point to a valid commit: $1"
-fi
-
-test -z "$rebase_root" -a $# -ge 1 -a $# -le 2 ||
-test ! -z "$rebase_root" -a $# -le 1 || usage
-
git var GIT_COMMITTER_IDENT >/dev/null ||
die "You need to set your committer info first"
-if test -z "$rebase_root"
-then
- upstream_arg="$1"
- upstream=$(git rev-parse --verify "$1") || die "Invalid base"
- test -z "$onto" && onto=$upstream
- shift
-else
- upstream=
- upstream_arg=--root
- test -z "$onto" &&
- die "You must specify --onto when using --root"
-fi
require_clean_work_tree "rebase" "Please commit or stash them."
run_pre_rebase_hook "$upstream_arg" "$@"
comment_for_reflog start
-if test ! -z "$1"
+if test ! -z "$switch_to"
then
- output git checkout "$1" -- ||
- die "Could not checkout $1"
+ output git checkout "$switch_to" -- ||
+ die "Could not checkout $switch_to"
fi
head=$(git rev-parse --verify HEAD) || die "No HEAD?"
mkdir "$dotest" || die "Could not create temporary $dotest"
: > "$dotest"/interactive || die "Could not mark as interactive"
-git symbolic-ref HEAD > "$dotest"/head-name 2> /dev/null ||
- echo "detached HEAD" > "$dotest"/head-name
+echo "$head_name" > "$dotest"/head-name
echo $head > "$dotest"/head
case "$rebase_root" in
diff --git a/git-rebase.sh b/git-rebase.sh
index 4a83d1042672184fcdcefbac1d99a9bfb46160f2..0f5f5fb206e74d996eb096aea7833708bdccb71c 100755 (executable)
--- a/git-rebase.sh
+++ b/git-rebase.sh
state_dir="$apply_dir"
fi
-test "$type" = interactive && run_interactive_rebase "$@"
-
if test -z "$rebase_root"
then
# The upstream head must be given. Make sure it is valid.
unset root_flag
upstream_arg="$upstream_name"
else
- test -z "$onto" && die "--root must be used with --onto"
+ test -z "$onto" && die "You must specify --onto when using --root"
unset upstream_name
unset upstream
root_flag="--root"
fi
;;
*)
- onto=$(git rev-parse --verify "${onto_name}^0") || exit
+ onto=$(git rev-parse --verify "${onto_name}^0") ||
+ die "Does not point to a valid commit: $1"
;;
esac
esac
orig_head=$branch
+test "$type" = interactive && run_interactive_rebase "$@"
+
require_clean_work_tree "rebase" "Please commit or stash them."
# Now we are rebasing commits $upstream..$branch (or with --root,