Is it a good practice to do git merges on git server?
Why server-side repository merge is a terrible idea in git?
git
Facebook is actually in the process of implementing server side rebasing (there's a summary here or you can skip to to about 10:55 in the video).In their case they have such a volume of pushes that developers are in competition to push, and they can get stuck trying to pull then push before someone else pushes and forces them to pull again.By implementing server side rebases, pushes are simply added to a queue and processed in order, ensuring developers don't waste time getting stuck in a push/pull loop while waiting for an opportunity to push cleanly. The majority of rebases can be performed without conflict, but if there is then the developer gets notified to manually handle the merge then submit a new push. It also helps that they have a very intensive automated testing suite (also discussed in that video) so they can have greater confidence in the integrity of their automated merging.Having said that, this approach only has benefits because they have such a high volume of pushes. These benefits don't exist if you don't have contention between pushes, and merging on the server side could significantly complicate conflict scenarios.In general it makes more sense for the pusher to handle merging because they're in the best position to handle conflicts, and there isn't usually any time saved by performing the process on the server side.