limiting rename detection during merge is a really bad idea
- From
Steffen Prohaska <prohaska@zib.de>
- Date
- Feb 11, 2008, 06:19 UTC
- Message-ID
- <CF28A4AE-62F0-4E41-9794-2CF85C2C7855@zib.de>
I almost lost faith in git's merging capabilities because merge- recursive limits rename detection to the default limit if not configured otherwise. I tried to do a large merge and was pretty convinced that git would handle the merge easily. But it unexpectedly failed to detect the renames. The reason is that merge-recursive uses the diff_rename_limit_default, which is 100, and this was too low in my case.
After debugging all the merge and diff machinery I found out that I just need to set diff.renamelimit=0 and everything works smoothly.
Well, it was an interesting debugging experience and I learnt a lot about the diffcore. Nonetheless this was one of the worst experiences I had with git and it kept me from doing more important work.
I think that limiting rename detection during merge is a really bad idea. Either we should set it to unlimited, or at least we should print a BIG WARNING that rename detection is limited during the merge. I'd propose to override diff.renamelimit to unlimited for a merge, even if diff.renamelimit is explicitly configured by the user. It doesn't make sense not to detect renames during a merge.
Opinions?
Steffen