Not a developer? Go to

Plugin and Theme Directory


By Byrne Reese
Posted November 10, 2010, in Utilities.


This plugin facilitates the process of blog consolidation in which one blog's content/associations are transferred entirely to another

merging of two blogs in a "winner takes all" fashion in which a target blog literally absorbs content and author associations/permissions from another. This renders the source blog a mostly empty, useless shell.

The main reason for developing this tool was to handle blog consolidation and subsequent retiring of the absorbed blog as a separate entity. For that reason, this tool was developed to change as little as possible in the underlying data, intelligently update the blog_ids of child classes instead of creating a new record via a clone.

Though it seems inconceivable that an explanation would be necessary, the name of the plugin is a Highlander) reference. There can be only one!


  • A command-line utility, merge-blogs, which facilitates the transfer of nearly all blog content and related metadata from one blog to another.

  • A dryrun mode allowing you to run the process without actually modifying any data

  • A set of detailed confirmation prompts that tell you exactly what will happen during execution and give you the ability to abort and a force mode to skip the interactive confirmations.

  • The option (via the perms flag) to transfer user/group associations (i.e. permissions/roles) from the source blog to the target blog, creating in the target blog the logical union of both blog's users and assigned roles.

  • The logging of all entry transfers with old and new permalink URLs which can be easily extracted for the purposes of setting up webserver redirects

  • Designed to search for, discover and intelligently facilitate the transfer of data from arbitrary object types and classes (e.g. data from third-party plugins).

  • Supports merging of categories and their placement records as directed by a user-customized CSV file. This functionality requires the Text::CSV perl module and is executed under a different run mode as well as a third which does nothing but verify the CSV file. Unfortunately, the documentation here on GitHub is lacking as this was designed to the commissioning client's spec. If you need guidance before I complete it, drop me a line.

  • Brief and lengthy documentation of the command line utility via the help and man flags


To install this plugin follow the instructions found here:


There is no web interface for the plugin as everything is currently done entirely though its command-line utility at plugins/MacLeod/tools/merge-blogs. Everything you need to know can be discovered in the utility's man page:

./plugins/MacLeod/tools/merge-blogs --man


The following plugins/utilities are required for proper operation:

  • Log4MT - Used for general purpose logging and recording of entry permalink redirects
  • CLITool - Underlying framework for all of Endevver's command-line interface (CLI) tools


You can see a full list of the data types not handled by the system in the config.yaml. In general, the only blog-specific content not currently handled is:

  • Templates - MT::Template and MT::TemplateMap records. This was omitted because we questioned the need for it. The new blog already has templates and we believe that most users would not want to move all of the templates en masse into the target blog. We may develop a method to easily migrate selected templates upon users' requests.
  • Session, FileInfo and TheSchwartz records - These are temporal and regenerated automatically as needed

Help, Bugs and Feature Requests

If you are having problems installing or using the plugin, please check out our general knowledge base and help ticket system at

Future Plans

This plugin was quickly put together to satisfy a single use case for a client. In the future, it will certainly be expanded (and properly named) to facilitate mobility of individual pieces of content, all objects from individual object classes (e.g. templates, associations, etc) and metadata between blogs.






Tadik on April 26, 2016, 8:56 a.m. Reply

Really good job! This plugin is really helped me! Thank you

Darius Adam Richardson

Darius Adam Richardson on May 27, 2017, 7:46 p.m. Reply

Did you get this to work? I think I am doing something wrong. I wanted to update my blog and move the content I had written previously over to my site but it failed. Do I need to run this somehow differently or do I need to run this program on my computer?

Kamilla Kamilla

Kamilla Kamilla on August 28, 2016, 4:18 p.m. Reply

Your work is very good and I appreciate you and hopping for some more informative posts. Thank you for sharing great information to us. 192.168.o.1

Kamilla Kamilla

Kamilla Kamilla on August 28, 2016, 4:19 p.m. Reply

Your work is very good and I appreciate you and hopping for some more informative posts. Thank you for sharing great information to us. 192.168.o.1

nish gau

nish gau on September 18, 2016, 11:48 a.m. Reply

Awesome article. Helped me a lot. Keep posting such informative articles. Its really good to get more knowledge on these topics. Thanks pixelgun 3d

Kamilla Kamilla

Kamilla Kamilla on November 12, 2016, 3:38 p.m. Reply

Thanks for making such a cool post which is really very well written.will be referring a lot of friends about this.Keep blogging. wow boost

Stephanie Shadrick

Stephanie Shadrick on May 3, 2017, 3:37 p.m. Reply

The question that you have asked is not that simple and it is also not even possible to give the answer it just in a few words or lines. I will suggest you to take some expert opinion in this regard and will recommend you to get in touch with some professors of online university.


nachoVi on May 28, 2017, 11:27 a.m. Reply

Thanks for the answers, i have one ,ore website about this subject - router login


nachoVi on May 28, 2017, 11:35 a.m. Reply

Wonderful blog. I have never seen a more wonderful plugin than this one. ip


rosario on June 26, 2017, 5:47 p.m. Reply

wow very nice scie a onglet


Paulineweb on November 5, 2017, 9:18 p.m. Reply

Merci pour cet article très enrichissant. Je m’efforce aussi de rédiger du contenu de qualité sur mon site dédié aux jambes lourdes et aux problèmes de circulation sanguine.

La sensation de jambes lourdes est un problème présent chez de nombreuses femmes. C’est pourquoi je dois publier des articles qui parlent aux femmes souhaitant alléger leurs jambes ! Si vous êtes curieux vous pouvez venir visiter mon site :


elia on January 14, 2018, 4:23 p.m. Reply

Super article high tech, consultez mon site sur : enceinte bluetooth bose.


elia on January 14, 2018, 4:24 p.m. Reply

Bel article enceinte bluetooth bose


Trouve on January 14, 2018, 5:18 p.m. Reply

Bon article comme toujours, j’espère que vous continuerez à nous faire plaisir comme vous le faites. Merci ;) Sophie / Trouver un psy


multilang on January 16, 2018, 11:39 a.m. Reply

Great post. Try I have added a link to your service


multilang on January 16, 2018, 11:39 a.m. Reply

I have been redirected to the page. If the same happened for youpersonally, use Language dictionary to translate it into english. Try

Leave a Comment

Byrne Reese

Byrne Reese was previously the Product Manager of Movable Type at Six Apart, where he had also held positions as the Manager of Platform Technology and Product Manager for TypePad. Byrne is a huge supporter of the Movable Type user and developer community. He dedicates much of his time to promoting and educating people about Movable Type as well as building the tools and plugins for Movable Type that are showcased on Majordojo. He contributes regularly to open source; and he is an advocate for open protocols and standards like Atom and OpenID.