-
Notifications
You must be signed in to change notification settings - Fork 381
Description
.NET Core has a lot of inter-branch merges, and they generate a ton of noise. Most of the changes in the inter-branch merges are dependency files, which are hard to merge by hand. Generally, the right strategy for merging dependency files is that the target branch's files should be retained, whereas the rest of the files in the repo should just merge in normal fashion.
Basically, inter-branch merging needs to get optionally smarter. It needs to:
- Be context aware of version details files. Optionally choose to merge by taking the target branch's version.details.xml file completley
- Be context aware of other version files like Versions.props, global.json etc. Some changes to versions.props, global.json, etc. may be legitimate, as in they are changes that are not controlled by dependency flow. So it's not correct to just blanket take the target versions.props file. But a merge with conflcit resolution that recognizes the content of an already merged version.details file would generate an appropriate merge
There are some other options, like separating out versions.props files for dependency flow, and those for use otherwise. You couold then make blanket rules about version.detials.xml and verisons.props as in "take my whole file". The problem is that while that reduces the cost for those two files, there still exist others that will have the same problem: global.json and the arcade files come to mind.
I think the right thing to do is generate a custom merge driver.
Recently Triaged Issues
All issues in this section should be triaged by the v-team into one of their business objectives or features.