Mercurial handles both scenarios easily. For me, the option is preferable, because it is easier to maintain. What if Alice does not want Bob to enter her repo? Then she has to worry about pushing him off. Where, as if Alice wants to pull Bobβs change, she clearly agreed to the craving and, as a result, the merger, and expects this. Most likely, she will be pulled into a separate repo before merging with her main repo to make sure that she really wants to integrate her changes.
Maybe it's just me, but interpreting the changes on someone else seems dirty. I would rather let them know that an update is available, and if they are interested, they can extract the changes from you.
As the saying goes, the way we manage here in the office is to force most of the codes to a central repo, to which everyone has access. Once it is approved through a code review, these changes will go into our real repo and become available to everyone else. Only in rather rare cases, developers directly pushed the code towards each other, and this usually happens when they closely interact with the same function.
source share