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

Re: Basename matching during rename/copy detection

From
Steven Grimm <koreth@midwinter.com>
Date
Jun 21, 2007, 16:57 UTC
Message-ID
<467AADFA.9040804@midwinter.com>
In-Reply-To
<Pine.LNX.4.64.0706211649520.4059@racer.site>
Johannes Schindelin wrote:
> No, that message did not convince me. It was way too short on the side of 
> facts.
>   

Short of posting multiple historical versions of the third-party source code in question, I'm not sure what I can do to convince you. And I'd rather not violate the license agreement on that code. I would have thought, though, that the fact that I supplied a detailed, reproducible test case with obviously broken behavior would itself have been pretty convincing.

The fact that not all projects contain any short files, or any files whose contents have ever been identical, does not cause git's behavior in that test case to be correct. "It's broken and unfixable" is one thing; "It's broken and we don't care" is another; and "It's broken and we care but it's not at the top of anyone's priority list to fix" is something else again. All of those are fine, but "If it's broken, you are stupid" and "If it's broken, it's a sign your project isn't real" are not.

Or, to take another tack on this entirely, it is not the proper function of a version control system to dictate the contents of the projects under its control. It should take whatever we humans throw at it and reproduce those contents faithfully with coherent, non-jumbled history. It should do so even if what we're throwing at it is completely stupid.

By the way, I'll toss out one more example of legitimate duplicate files, though admittedly one where you might not care so much about history jumbling: if you have a project that makes use of two GPL libraries or utilities whose source you want to keep locally, e.g. because you are making local modifications, you will have two copies of the GNU "COPYING" file. Neither one produced by a build system (or at least, not by *your* build system) and you are not permitted by the terms of the GPL to publish a copy of either piece of software without a verbatim copy of its license -- it says so right in section 1 of the GPL (the "keep intact" wording.) Removing one of those copies and expecting a build system to reconstruct it after someone clones your repository would arguably be a violation of the GPL.

-Steve
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 15 of 44 in “Basename matching during rename/copy detection”
  1. Shawn O. PearceJun 21, 2007
  2. Junio C HamanoJun 21, 2007
  3. Andy ParkinsJun 21, 2007
  4. Junio C HamanoJun 21, 2007
  5. Andy ParkinsJun 21, 2007
  6. Johannes SchindelinJun 21, 2007
  7. Andy ParkinsJun 21, 2007
  8. Matthieu MoyJun 21, 2007
  9. Jeff KingJun 21, 2007
  10. Johannes SchindelinJun 21, 2007
  11. Matthieu MoyJun 21, 2007
  12. Johannes SchindelinJun 21, 2007
  13. Steven GrimmJun 21, 2007
  14. Johannes SchindelinJun 21, 2007
  15. Steven GrimmJun 21, 2007
  16. Johannes SchindelinJun 21, 2007
  17. Linus TorvaldsJun 21, 2007
  18. diffcore-rename: favour identical basenamesJohannes Schindelin, Jun 21, 2007
  19. Jeff KingJun 21, 2007
  20. Johannes SchindelinJun 21, 2007
  21. Linus TorvaldsJun 21, 2007
  22. Junio C HamanoJun 21, 2007
  23. Linus TorvaldsJun 21, 2007
  24. Andy ParkinsJun 22, 2007
  25. Johannes SchindelinJun 22, 2007
  26. Aidan Van DykJun 22, 2007
  27. Johannes SchindelinJun 22, 2007
  28. Jeff KingJun 22, 2007
  29. Johannes SchindelinJun 22, 2007
  30. Johannes SixtJun 22, 2007
  31. Johannes SchindelinJun 22, 2007
  32. 100% (was: [PATCH] diffcore-rename: favour identical basenames)David Kastrup, Jun 22, 2007
  33. Johannes SchindelinJun 22, 2007
  34. Junio C HamanoJun 23, 2007
  35. Johannes SchindelinJun 23, 2007
  36. René ScharfeJun 23, 2007
  37. Johannes SchindelinJun 23, 2007
  38. René ScharfeJun 23, 2007
  39. Johannes SchindelinJun 23, 2007
  40. René ScharfeJun 23, 2007
  41. Johannes SchindelinJun 23, 2007
  42. René ScharfeJun 24, 2007
  43. Junio C HamanoJun 23, 2007
  44. Johannes SchindelinJun 23, 2007

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.