Re: [PATCH] More permissive "git-rm --cached" behavior without -f.
From: Matthieu Moy <hidden>
Date: 2016-06-15 22:43:21
Junio C Hamano [off-list ref] writes:
Junio C Hamano [off-list ref] writes:quoted
Although I would not be using it often myself, I think this would make "git rm" more pleasant to use. Thanks for the patch, and my thanks also go to people who commented on the patch.Having said that, I think this comment is not quite right. + else if (!index_only) { + /* It's not dangerous to git-rm --cached a + * file if the index matches the file or the + * HEAD, since it means the deleted content is + * still available somewhere. + */ Personally I do not think "rm --cached" needs any such "safety", even though I'll keep the check for now, primarily because loosening the restriction later is always easier than adding new restriction. I really do not think this is about protecting the user from "deleted content is not available anywhere else".
I agree that this is something you can argue about. But in this case, the behavior without -f should be changed too. If the file matches HEAD, then "git-rm file" should work, regardless of the index then (but this situation is less frequent). In any case, the situation where you might lose content in the index by doing git-rm are rare: it means you started working on a file, did "git-add" at least once, and edited the file again later, and then decided you wanted to remove the file. So, requiring the -f flag in those situation is not a real problem, even if the situation is slightly-dangerous-but-not-quite-so. I'm willing to work on another patch on top of this one if there's an agreement on a better semantics. This one was about fixing something which was IMHO wrong, but doesn't necessarily achieve perfection ;-). -- Matthieu