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

Re: Errors GITtifying GCC and Binutils

From
Junio C Hamano <junkio@cox.net>
Date
Mar 23, 2006, 23:51 UTC
Message-ID
<7vacbg4t48.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<20060323210215.GH26071@mythryan2.michonline.com>
Ryan Anderson <ryan@michonline.com> writes:
> Git has taken a very pragmatic approach, in that the goal has been "What
> is the smallest number of concepts we can create that let us solve the
> problem, even if we occassionally have to make some tradeoffs?"
> (Thinking of rename detection there, mostly.)

I do not see it as a tradeoff not to record renames. It _is_ a feature.

On the other hand, rename detection is an eye candy, which is sometimes useful but only sometimes. If you look at the history of a real project, content movement across multiple files is a norm, and content movement between two files, one of which disappears and the other appears, is a rather narrow special case. If you think in terms of "renames", you can only talk about that special case, and rename detection also can only deal with that special case.

Two good examples were discussed some time ago on the list. One was about "where did {powerpc,pcc64}/Makefile come from?" and the answer was "content migrated over time across multiple commits, and you cannot really say this Makefile is renamed from somewhere". The other was the comment by Linus on how revision.c evolved in our project.

I am reasonably happy with how our rename detection turned out to be, but we should keep in mind that detecting file renames is scratching only a narrowly defined subset of the problem space.

Pickaxe was an attempt to help tracking other forms of content movement, and it is minimally useful as a building block, but if we really want to track content movement across file boundaries, like Linus originally envisioned in

	http://article.gmane.org/gmane.comp.version-control.git/217
we need to have a bit more Porcelain around it.
Previous: Linus TorvaldsNext: Ryan Anderson
Message 33 of 43 in “Errors GITtifying GCC and Binutils”
  1. Jan-Benedict GlawMar 22, 2006
  2. Linus TorvaldsMar 22, 2006
  3. Linus TorvaldsMar 23, 2006
  4. Linus TorvaldsMar 23, 2006
  5. Jan-Benedict GlawMar 23, 2006
  6. Linus TorvaldsMar 23, 2006
  7. Chris ShoemakerMar 24, 2006
  8. Keith PackardMar 24, 2006
  9. Jan-Benedict GlawMar 24, 2006
  10. Chris ShoemakerMar 25, 2006
  11. H. Peter AnvinMar 23, 2006
  12. Keith PackardMar 23, 2006
  13. Linus TorvaldsMar 23, 2006
  14. seanMar 23, 2006
  15. Linus TorvaldsMar 23, 2006
  16. Shawn PearceMar 23, 2006
  17. Ryan AndersonMar 23, 2006
  18. Junio C HamanoMar 24, 2006
  19. Junio C HamanoMar 23, 2006
  20. Johannes SchindelinMar 24, 2006
  21. Mark WoodingMar 24, 2006
  22. Andreas EricssonMar 24, 2006
  23. David S. MillerMar 23, 2006
  24. Linus TorvaldsMar 23, 2006
  25. Timo HirvonenMar 23, 2006
  26. seanMar 23, 2006
  27. Ralf BaechleMar 24, 2006
  28. Andreas EricssonMar 24, 2006
  29. Carl WorthMar 24, 2006
  30. Andreas EricssonMar 24, 2006
  31. Ryan AndersonMar 23, 2006
  32. Linus TorvaldsMar 23, 2006
  33. Junio C HamanoMar 23, 2006
  34. Ryan AndersonMar 24, 2006
  35. Junio C HamanoMar 24, 2006
  36. Ralf BaechleMar 24, 2006
  37. Jan-Benedict GlawMar 24, 2006
  38. Andreas EricssonMar 24, 2006
  39. Jan-Benedict GlawMar 25, 2006
  40. Santi BéjarMar 24, 2006
  41. Eric WongMar 25, 2006
  42. contrib/git-svn: stabilize memory usage for big fetchesEric Wong, Mar 26, 2006
  43. James CloosMar 25, 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.