Skip to content

.NET Core inter-branch merge bot should be (very) smart #4848

@mmitche

Description

@mmitche

.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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Epicdev-workflowProvides some benefit to dev workflow

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions