Do not require clean tree when reverting and cherry-picking.
My stupidity deserved to be yelled at by Linus ... there is no reason to require the working tree to be clean when merging -- the only requirements are index to match HEAD commit and the paths involved in merge are up to date in the working tree. Revert and cherry-pick are just specialized forms of merge, and the requirements should be the same. Remove the 'general purpose routine to make sure tree is clean' from git-sh-setup, to prevent me from getting tempted again. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
a935824036
commit
e2f5f6ef67
@ -56,9 +56,12 @@ t)
|
|||||||
die "Your index file is unmerged."
|
die "Your index file is unmerged."
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
check_clean_tree || die "Cannot run $me from a dirty tree."
|
|
||||||
head=$(git-rev-parse --verify HEAD) ||
|
head=$(git-rev-parse --verify HEAD) ||
|
||||||
die "You do not have a valid HEAD"
|
die "You do not have a valid HEAD"
|
||||||
|
files=$(git-diff-index --cached --name-only $head) || exit
|
||||||
|
if [ "$files" ]; then
|
||||||
|
die "Dirty index: cannot $me (dirty: $files)"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -17,17 +17,6 @@ die() {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
check_clean_tree() {
|
|
||||||
dirty1_=`git-update-index -q --refresh` && {
|
|
||||||
dirty2_=`git-diff-index --name-only --cached HEAD`
|
|
||||||
case "$dirty2_" in '') : ;; *) (exit 1) ;; esac
|
|
||||||
} || {
|
|
||||||
echo >&2 "$dirty1_"
|
|
||||||
echo "$dirty2_" | sed >&2 -e 's/^/modified: /'
|
|
||||||
(exit 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[ -h "$GIT_DIR/HEAD" ] &&
|
[ -h "$GIT_DIR/HEAD" ] &&
|
||||||
[ -d "$GIT_DIR/refs" ] &&
|
[ -d "$GIT_DIR/refs" ] &&
|
||||||
[ -d "$GIT_OBJECT_DIRECTORY/00" ]
|
[ -d "$GIT_OBJECT_DIRECTORY/00" ]
|
||||||
|
Loading…
Reference in New Issue
Block a user