git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Ron Garret
Message 5 of 5 in “A git-mv question”
  1. Ron GarretFeb 2, 2010
  2. Nicolas PitreFeb 2, 2010
  3. Junio C HamanoFeb 2, 2010
  4. Ron GarretFeb 2, 2010
  5. Jakub NarebskiFeb 2, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.