Re: [RFC/WIP PATCH 1/1] merge-recursive: make file/directory conflicts easier to resolve
flat view
From: Junio C Hamano <hidden>
Date: 2018-08-09 20:54:50
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.