revert/cherry-pick: allow starting from dirty work tree.
There is no reason to forbid a dirty work tree when reverting or cherry-picking a change, as long as the index is clean.
The scripted version used to allow it:
case "$no_commit" in t) # We do not intend to commit immediately. We just want to # merge the differences in. head=$(git-write-tree) || die "Your index file is unmerged." ;; *) head=$(git-rev-parse --verify 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
but C rewrite tightened the check, probably by mistake.