Elijah Newren [off-list ref] writes:
quoted
Of course, "git rm" and "git mv" must work sensibly, if we want this
change to be truly helpful--but if not, they need to be fixed ;-)
That actually brings up an interesting question. Right now, if given
a path that appears in the index but at a stage greater than 0, git mv
will fail with "not under version control". Obviously, that error
message is a lie in such a case, but what should it do?
(Alternatively, if there is only one entry with stage greater than 0
and it has no other conflicts, one could envision git mv doing the
rename and dropping to stage 0 at the same time, but that sounds a bit
dangerous to me.)
I do not particularly think it is "dangerous". In fact, that sort
of behaviour was what I had in mind when I said "work sensibly".
When resolving a conflict that they added a new path at stage #3 to
remove that path, I can say "git rm $that_path", which removes all
stages of that path and make the index closer to the next commit.
Or I may decide to keep that path by "git add $that_path", which
adds that path at stage #0. I think "git mv $that_path $over_there"
that drops that path at stage #3 to stage #0 of another path would
be in line with these two.