Junio C Hamano writes: > When <path> exists in the index (either merged or unmerged), and > <tree> does not have it, git-reset should be usable to restore > the absense of it from the tree. This implements it. Great! It took some time, but I think I understand now why the first part was even necessary:-) > diff --git a/git-reset.sh b/git-reset.sh > index a969370..76c8a81 100755 > --- a/git-reset.sh > +++ b/git-reset.sh > @@ -44,8 +44,10 @@ if test $# != 0 > then > test "$reset_type" == "--mixed" || > die "Cannot do partial $reset_type reset." > - git ls-tree -r --full-name $rev -- "$@" | > - git update-index --add --index-info || exit > + > + git-diff-index --cached $rev -- "$@" | > + sed -e 's/^:\([0-7][0-7]*\) [0-7][0-7]* \([0-9a-f][0-9a-f]*\) [0-9a-f][0-9a-f]* [A-Z] \(.*\)$/\1 \2 \3/' | > + git update-index --add --remove --index-info || exit All other scripts calling update-index --index-info don't mention add/remove (which are ignored anyway). Might be useful as a reminder though. > git update-index --refresh > exit > fi - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html