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

Re: Adding Git to Better SCM Initiative : Comparison

From
Llinux@horizon.com <linux@horizon.com>
Date
Jan 13, 2008, 15:05 UTC
Message-ID
<20080113150541.21883.qmail@science.horizon.com>
Show 8 quoted lines
> What does "Renames Support" mean? Does it mean that when browsing history
> we [can] show file / directory renames? Does it mean that log of file or
> directory history [can] follow renames? Does it mean that line-wise file
> history [can] follow renames? Renames support in merges is as TODO, so
> I don't think that this one matters in this question. Because the answer,
> especially in the case of git which is a bit different in that it does
> rename detection and not rename tracking (using inodes / file-ids),
> depends on that...

Let me make a bolder statement: a person asking for "rename support" has been mentally damaged by using CVS too much.

CVS's fundamental problem is that it's a tree of versioned files. So a file has to have a well-defined identity across versions, so CVS uses the name, and that leads to problems if you rename the file.

And this is fundamentally broken. Both git and subversion do it right: a repository is a versioned tree of files. Files don't have versions, but rather versions have files. With this model, the problem Just Goes Away. It doesn't exist any more. There's nothing to solve, nothing to do.

"Rename support" is a kludge to make a fundamentally broken model less painful. Git doesn't have the problem, and so doesn't need, doesn't have, and doesn't want the kludge. Indeed, as your questions above show, it's hard to even define what it would be if it existed. It's like asking if an electric light has a thoriated mantle, or inquiring about the filament supply voltage of my mp3 player.

In all honesty, the correct answer is "no", git doesn't have that feature, just like my laptop doesn't have a cooling water pressure sensor and my solar-powered pocket calculator doesn't have a user-serviceable mains fuse.

What's broken is the feature checklist. Someone has to go and re-think the issue in a less CVS-centric way.

Just in case I was not clear enough above:
	The need for a source file to have an identity
	that persists across multiple revisions is an
	artifact of CVS's implementation.  Anyone asking
	if a different version control system can preserve
	that identity across renames needs to learn that
	we now have ways of making light without fire.
Next: Matthieu Moy
Message 1 of 5 in “Re: Adding Git to Better SCM Initiative : Comparison”
  1. linux@horizon.comJan 13, 2008
  2. Matthieu MoyJan 13, 2008
  3. Jakub NarebskiJan 13, 2008
  4. linux@horizon.comJan 13, 2008
  5. linux@horizon.comJan 13, 2008

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.