On Wed, Mar 12, 2025 at 02:40:35PM -0700, Elijah Newren wrote: > > But I am almost certain that the behavior requested here is to disable > > rename detection to match the behavior of GitHub's prior use of libgit2 > > to perform merges, where we also had rename detection disabled (for > > reasons that are unclear to me, but Peff might know). > > No, if that were the sole reason, I'd say it probably only belongs in > our internal fork. Disabling of rename detection within GitHub was a > temporary internal migration measure, not a desired end state -- at > least that's the way Johannes portrayed it to me. I know that > "temporary" sometimes lasts longer than we want, but now that I've > become internal to GitHub, one of the things I want to do is add some > weight to that "temporary" modifier. Yes, I think it was a series of hysterical raisins. The original PR merge test at GitHub was done using a shell script around git-merge-file (because git-merge insisted on a working tree). And naturally that did not support renames. (I think I probably wrote that script, but it's so long ago I could be wrong, and I don't have access to the repo anymore). And then we switched from that to libgit2, after Ed Thomson implemented merge support there (mostly for performance). And the decision was made to disable renames there at first, to confirm that it otherwise performed identically to the existing shell script (to confirm the results, but also because it was unclear if rename detection for automated merges would always produce what the user wanted, or have bad corner cases). So it was mostly temporary, with the idea that somebody would explore turning it on later. But I don't think that ever happened. Those with access to the correct repositories can probably find the arguments in the issue tracker. ;) I don't think I was around for switching from libgit2 to merge-tree, but I'd guess the same "only change one thing at a time" logic applied. So yes, mostly temporary-but-never-revisited, with a dash of conservatism. I don't have any real opinion on what should happen in the future, except that renames on GitHub are probably reasonable, and having an option to disable renames for everyone is probably also a reasonable feature. ;) -Peff