Elijah Newren <newren@xxxxxxxxx> writes: >> 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.