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

Re: [ANNOUNCE] Git wiki

From
Linus Torvalds <torvalds@osdl.org>
Date
May 5, 2006, 18:31 UTC
Message-ID
<Pine.LNX.4.64.0605051123420.3622@g5.osdl.org>
In-Reply-To
<20060505181540.GB27689@pasky.or.cz>
On Fri, 5 May 2006, Petr Baudis wrote:
Show 6 quoted lines
> 
> The automatic vs. explicit movement tracking is a lot more
> controversial. Explicit movement tracking is pretty easy to provide for
> file-level movements, it's just that the user says "I _did_ move file
> A to file B" (I never got the Linus' argument that the user has no idea
> - he just _performed_ the move, also explicitly, by calling *mv).
THE USER DID NO SUCH THING.
Moving data around happens with a whole lot more than "mv".

It happens with patches (somebody _else_ may have done an "mv", without using git at all), and it happens with editors (moving data around until most of it exists in another file).

So doing "*mv" is just a special case.

And supporting special cases is _wrong_. If you start depending on data that isn't actually dependable, that's WRONG.

There's another reason why encoding movement information in the commit is totally broken, namely the fact that a lot of the actions DO NOT WALK THE COMMIT CHAIN!

Try doing
	git diff v1.3.0..

and think about what that actually _means_. Think about the fact that it doesn't actually walk the commit chain at all: it diffs the trees between v1.3.0 and the current one. What if the rename happened in a commit in the middle?

The "track contents, not intentions" approach avoids both these things. The end result is _reliable_, not a "random guess".

Adding file movement note to commits is simply WRONG.

Why does this come up every three months or so? I was right the first time. You'd think that as time passes, people would just notice more and more how right I was and am, instead of forgetting and bringing this idiotic idea up over and over and over again.

		Linus
Previous: Jakub NarebskiNext: Petr Baudis
Message 15 of 25 in “Re: [ANNOUNCE] Git wiki”
  1. linux@horizon.comMay 5, 2006
  2. Fredrik KuivinenMay 5, 2006
  3. Jakub NarebskiMay 5, 2006
  4. Petr BaudisMay 5, 2006
  5. Junio C HamanoMay 5, 2006
  6. Petr BaudisMay 5, 2006
  7. Jakub NarebskiMay 5, 2006
  8. Jakub NarebskiMay 5, 2006
  9. Petr BaudisMay 5, 2006
  10. Linus TorvaldsMay 5, 2006
  11. Dave JonesMay 5, 2006
  12. Petr BaudisMay 5, 2006
  13. Petr BaudisMay 5, 2006
  14. Jakub NarebskiMay 5, 2006
  15. Linus TorvaldsMay 5, 2006
  16. Petr BaudisMay 5, 2006
  17. Jakub NarebskiMay 5, 2006
  18. Jakub NarebskiMay 6, 2006
  19. Junio C HamanoMay 5, 2006
  20. Martin LanghoffMay 6, 2006
  21. Junio C HamanoMay 6, 2006
  22. Jakub NarebskiMay 6, 2006
  23. Junio C HamanoMay 6, 2006
  24. Bertrand JacquinMay 6, 2006
  25. Olivier GalibertMay 5, 2006

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.