This module helps users to merge together duplicate accounts. The module provides support for nodes, comments, organic group memberships, notification settings, and profiles. It uses a hook system so other modules can do whatever they need to manage their relationships to users.
Where possible the module does a "union" on the data and if there are conflicts it will use the values from the "user to keep". If the "user to delete" has the "Site admin" role and no other roles and the "user to keep" has the "moderator" role and no other roles the "Site admin" role will be granted to the "user to keep." In the case of profile fields, the values will be merged together and any values that the "user to delete" has where the "user to keep" has not entered data the "user to keep" will get the value from the "user to delete", but where they both had values then the "user to keep" value will be used as the final value.
Etc. When in doubt, look at the code or try it on a test site to see how it works.
The current method of update data is simple: go directly to the DB. This has the benefit of working reasonably well on large data sets with the drawback of not leaving an audit trail and not firing events normally associated with changing the user associated with an object.
The 7.x branch is based on the great work of JuliaKM in. It is fresh and ready for help with testing.
Notes for version 2.x
A new interface allows users with the right permissions to choose how each user property should be merged. This includes the ability to merge fields, referencing entities, and other entities owned by the selected users. This aims to provide a more finely tuned merge process, as well as to minimize errors and information loss.
Version 2.x renders these modules obsolete.