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

Re: Choosing between "renaming" and "copy"

From
Andreas Ericsson <ae@op5.se>
Date
Mar 12, 2009, 14:44 UTC
Message-ID
<49B91FC9.6090700@op5.se>
In-Reply-To
<2009-03-12-14-01-15+trackit+sam@rfc1149.net>
Samuel Tardieu wrote:
Show 13 quoted lines
> I renamed a file in my repository, and made a slightly modified copy
> of it. It looks like GIT gets confused on which one is the renaming
> and which one is the copy, and doesn't favour the 100% identical one
> to be chosen as the renaming.
> 
> Not a big deal, but maybe git could be more clever here.
> 
> % git commit -m "Split into flash and ram alternatives." 
> [stm32-sk 601462c] Split into flash and ram alternatives.
>  3 files changed, 3 insertions(+), 2 deletions(-)
>  copy Demo/CORTEX_STM32SK_GCC/{stm32f103r8t6.ld => stm32f103r8t6_flash.ld} (100%)
>  rename Demo/CORTEX_STM32SK_GCC/{stm32f103r8t6.ld => stm32f103r8t6_ram.ld} (98%)
> 

There isn't that much more to be clever about, really. One is a rename+edit, the other is a copy. The other way around would have been copy+edit + rename which isn't necessarily an improvement.

Looking at how git internally[1] does things and remembering the meanings of "copy" and "rename" though, it makes perfect sense to leave it as-is.

[1]. In git, the content is part of the (object) name, so changing the content makes it closer to a rename than a copy, while changing the location always makes it a copy, although sometimes coupled with a delete.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.
Previous: Samuel Tardieu
Message 2 of 2 in “Choosing between "renaming" and "copy"”
  1. Samuel TardieuMar 12, 2009
  2. Andreas EricssonMar 12, 2009

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.