Entity Merge provides a framework for being able to merge two entities together. Developed alongside the Party module, it handles merging the contents of one entity into another out of the box including all the values on the fields.
The merge process for a given entity is controlled by that entity type's merge handler class, see EntityMergeDefaultHandler for more information.
As Merges can become very large in sites with lots of entity references or OG memberships a single entity merge is split into a number of distinct processes. These processes are run using Drupal's Queue API in such a way that each process queues the next one.
The UI for this module is deliberately limited to allow developers to construct their own UI's based on their use case.
1. Install entity_merge.
2. Run entity_merge($entity1, $entity2, $entity_type); to start merging $entity1 and $entity2. The process will (by default) be run on cron and possibly span a number of successive crons.