I am tracking this topic as well. For me it would be most interesting to be able to set up a WIP v Shared workflow where multiple branches can be used for multiple teams. This is also how the ‘GIT’ idea is launched.
Very black and white:
We can analyze ownership of objects based on creation of those elements in different branches: i.e. If one branch has created the object, changes proposed in the merge from that branch are always treated to overrule other changes.
Another way is to set-up ‘tests’.
For quality check in GIT there is a method called ‘tests’ to verify code.
This method is used to merge code from branches to the ‘main’ . This creates a flow from one developer to a reviewer, making a certain check on the code/functionality.
For merging, we can do a sort of sandbox on the speckle viewer, where the owner of the ‘main’ (BIM Coordinator e.g.) will view these different objects and identify which one is correct. after the conflict resolution, the sandbox is cleared and the outcome is put through to the main as well.
if an item is accepted that has a later date, that also has a conflict of an item with an earlier date on another branch, we could automatically assume these conflicts are resolved by the computer as the other element is the latest ‘truth’
We can always only allow merging branch by branch, to make sure this review does not get too complex.