Re: A git-mv question
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Feb 2, 2010, 15:32 UTC
- Message-ID
- <m3r5p3ac2e.fsf@localhost.localdomain>
- In-Reply-To
- <ron1-09EE6C.16083801022010@news.gmane.org>
Ron Garret <ron1@flownet.com> writes:
Show 8 quoted lines
> If I do a git-mv *and* edit the file all in one commit, does that get > recorded in a way that allows git to track the change through the > changed file name? In other words, if I do just a git-mv (without > changing the file) git can track that by observing that two differently > named objects in two different commit trees contain the same blob. But > if the file is edited then the blobs will be different. Is git smart > enough to distinguish a git-mv and edit from, say, the equivalent git-rm > and git-add? If so, how does it do it?
Git does not distinguish between git-mv and equivalent git-rm+git-add; it employs heuristic similarity based (based on how contents of files is similar to each other) rename detection.
Also worth noting is that git does consider only endpoints for rename detection in diff and in merge; it does not check history if there were clean rename / rename + edit.
-- Jakub Narebski Poland ShadeHawk on #git