Here's our problem - we have several solutions with multiple projects using our own nuget packages. We're following GitFlow, but not SemVer. Every time we're developing bigger feature or epic we want to keep it's code up to date with our development branch (which can have some other features or bugfixes done in time of developing aforementioned epic), so we want to merge it regularly. The problem is that in every merge, if there were any changes with our nuget packages, we have dozens of merge conflicts in all packages.config files in our projects. Doing it that way, merge takes too much time, especially since after merging we have to manually update nuget versions and install them in our projects. So every time we want to merge something we have to reproduce this steps:
- Merge branch
- Resolve all version conflicts
- Push updated nuget packages
- Install updated nuget packages
I've done some research, but I'm still not sure what's the best solution to simplify this process. Ok, we can use PackageReference or Paket with floating versions combined with GitVersion, which would automize steps 3 and 4 for our development branch, but problem with merging and conflicts remains, as our development branch uses release versions (X.X.X) and other branches are using prerelease versions (with -branchName tag). So with every update there still will be conflicts.
So my question is, how to best deal with that situation? Is there any way to solve this using nugets or maybe we can share our code in some other way? Shared Projects won't solve our problems, as our libraries are quite big and we don't want to include them in our solutions.