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

Re: detecting rename->commit->modify->commit

From
IDIttay Dror <ittayd@tikalk.com>
Date
May 1, 2008, 18:58 UTC
Message-ID
<481A12C6.6060900@tikalk.com>
In-Reply-To
<2e24e5b90805010939g182de387i59722605ff93d72e@mail.gmail.com>
Sitaram Chamarty wrote:
> http://www.markshuttleworth.com/archives/123#comment-118655
>
Here is the comment from the thread, my comment on it is below:
 > This is a very strong point for renaming, but it is not necessarily 
an universal one.
 > Here is one example of the issue: one developer renaming a directory 
in his branch, and another adding a file to the original directory in 
his branch. What happens at the merge ?
 > - Bazaar renames the directory and puts the new file in the _renamed_ 
directory.
 > - Git renames the directory with its files, but keeps the old 
directory too and adds the new file there.
 > Bazaar’s behavior certainly is better for C. However it is not 
universally better.
 > For example in Java you cannot rename a file without changing its 
contents. So, moving a file to a directory different from where its 
author put it will almost certainly break the build.
 > The bottom line is, both behaviors can seem valid or broken, 
depending on the case. Neither is perfect. At the very abstract level 
file renames are _not_ a first-class operation. This is especially 
apparent in a language like Java.
 > Content movement is the first class operation. Things like moving 
functions, etc. The question is how one can handle that and whether the 
current strategy has a path for improvement. It could be > argued that 
once you commit yourself to explicitly tracking file renames, you are 
giving up a slew of opportunities for handling the more general cases.
 > One thing is for certain, a 100% ideal solution is impossible. It 
would have to be aware of the target programming language _and_ the 
build environment.

And my comment is that in this example, about Java, I think that manually fixing the package name in the file (after noticing the build is broken) is easy. On the other hand, if the other developer changed one of the renamed file, then manually merging the change in the file in the old location to the file in the new location is not so easy: you first need to discover that this happened, then merge the two files (and you still need to fix the package name).

ittay
-- 
Ittay Dror <ittayd@tikalk.com>
Tikal <http://www.tikalk.com>
Tikal Project <http://tikal.sourceforge.net>
Previous: Sitaram Chamarty
Message 49 of 49 in “detecting rename->commit->modify->commit”
  1. Ittay DrorMay 1, 2008
  2. Jeff KingMay 1, 2008
  3. Ittay DrorMay 1, 2008
  4. Jeff KingMay 1, 2008
  5. Ittay DrorMay 1, 2008
  6. Jeff KingMay 1, 2008
  7. Jakub NarebskiMay 1, 2008
  8. Teemu LikonenMay 1, 2008
  9. Jeff KingMay 1, 2008
  10. Sitaram ChamartyMay 2, 2008
  11. Junio C HamanoMay 2, 2008
  12. Sitaram ChamartyMay 2, 2008
  13. Ittay DrorMay 1, 2008
  14. Jeff KingMay 1, 2008
  15. Ittay DrorMay 1, 2008
  16. Jeff KingMay 1, 2008
  17. Ittay DrorMay 1, 2008
  18. David TweedMay 1, 2008
  19. Avery PennarunMay 1, 2008
  20. Jeff KingMay 1, 2008
  21. Avery PennarunMay 1, 2008
  22. Jeff KingMay 1, 2008
  23. Avery PennarunMay 1, 2008
  24. Jeff KingMay 1, 2008
  25. Steven GrimmMay 1, 2008
  26. Jeff KingMay 1, 2008
  27. merge renamed files/directories? (was: Re: detecting rename->commit->modify->commit)Ittay Dror, May 3, 2008
  28. Avery PennarunMay 3, 2008
  29. Ittay DrorMay 4, 2008
  30. Jakub NarebskiMay 4, 2008
  31. Avery PennarunMay 5, 2008
  32. Robin RosenbergMay 5, 2008
  33. Linus TorvaldsMay 5, 2008
  34. Steven GrimmMay 5, 2008
  35. Linus TorvaldsMay 6, 2008
  36. Linus TorvaldsMay 6, 2008
  37. Theodore TsoMay 6, 2008
  38. Linus TorvaldsMay 6, 2008
  39. Linus TorvaldsMay 6, 2008
  40. Ittay DrorMay 6, 2008
  41. Linus TorvaldsMay 6, 2008
  42. Avery PennarunMay 6, 2008
  43. Shawn O. PearceMay 6, 2008
  44. Avery PennarunMay 6, 2008
  45. Shawn O. PearceMay 6, 2008
  46. Linus TorvaldsMay 6, 2008
  47. Jeff KingMay 8, 2008
  48. Sitaram ChamartyMay 1, 2008
  49. Ittay DrorMay 1, 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.