Moving posts into an existing topic doesn't keep chronology

Yes this forum was a perfect once-run import from phpBB. Would that make a difference?

Don’t know, but I’ll give it a run at some point. I have reproduced it on 3 forums that have come from phpBB, but not on a clean install yet.

The option to do one or the other would be lovely. I like the other way, and so does my community, so the status quo is an irritant :slight_smile:

1 Like

Just experienced this and agree that it is a difficult problem. Had two parallel discussions on exact same topic and interleaving merged list according to chronology looks like it might have worked better. Latest post to original (merged into) topic is now quite a ways up in the thread. Tradeoff hard to analyze at glance.


Can’t discourse provides both ways and let mod/admin choose which one to use when merging?


I’m looking to insert moved posts to the last post on an existing topic. Seems this is not possible, so moved posts appear out of order and are listed after the original post in the existing topic.

Merging topics maybe isn’t usually a great idea, but I’d expect the posts to be displayed chronologically.

The current way is almost like threading (the original first post and its replies, followed by the parachuted-in first post and its replies, followed by subsequent posts) and, based on my understanding at least, goes against the spirit if not the letter of the Discourse philosophy.

As it stands, closing one topic and displaying some sort of admin notice at the top of both topics, drawing attention to the other topic, might often be a better approach.


We’ve noticed this oddity too. I think the mental model our users have is that threads are by definition a chronological list of replies. Whether I’m replying to a new post or a post that’s months old, my reply goes at the end. Merging topics beaks that model since a portion of the thread gets inserted into the timeline at whatever point the moderator merges.

In the abstract, I can see the reasoning for the current behavior: it maintains the integrity of the conversation within the merged-in topic. But it also raises the question of why topics are merged in the first place.

In the case of our community, we want to consolidate discussion about a discrete topic in one thread. For instance, we want one topic for people to report whether or not they were admitted to Ohio State’s class of 2025. If someone starts a new thread, it’ll get merged into the official topic. The replies are often independent of other replies in the thread. Most of the time people use the “Reply” button to respond to a particular post, so it’s not quite so important that replies are close to each other on the page.

If the replies were tightly linked together, I’m not sure there would be a need to merge threads. Instead, it makes sense to reply in one thread with a link to the other. Or maybe both directions. And perhaps close one of the threads. Merging implies that the two topics overlap to a large degree. There are other (and better) tools for dealing with parallel conversations.

At any rate, I’m just adding a data point: this implementation of merging is difficult to fit into the mental model our users have and makes the feature somewhat less useful than it could be if the replies were ordered chronologically.


Maybe someday there could be an option in the topic’s :wrench: menu to “Sort Posts By Date”?

That way, the default remains the same, with posts merged in at the end. If an admin thinks that topic is better served by those posts being woven into the old discussion, a quick click of such an option would take care of it as needed.


This seems to be coming back and back, is there a feature request somewhere? I would really appreciate this.


There is a rake task to do this, but no trigger from the UI at the moment.


I had a need to use this for some email threads that were split into separate topics during import so I thought I would elaborate on this in case anyone else also needs it. You’ll need to be able to access the command line on the server running your Discourse instance.

Start by moving all the desired posts into the target topic, then get the topic ID. In the address bar you might see something like the following, where the topic ID is 24855:

On your server, enter the Discourse app with the following commands. You may need to clear some space if you have less than 5GB available.

cd /var/discourse
./launcher enter app

If that is successful, you can then reorder the posts by their timestamps with the following command, replacing the topic ID as appropriate.

rake posts:reorder_posts[24855]

We are adding a “pick your poison” option to merging posts in, so you can choose which wrong method is least wrong for your use cases. :wink:


Are there any plans to add this to the roadmap in the (near) future?


I am also very interested in this! At least in our forum we often restructure whole discussions into new topics since they often go offtopic. Also we often move posts for SEO reasons whenever a “moved+closed” topic ranks better than the follow-up one.


Has this been implemented yet?


Not yet implemented, will be done for our next release.


Hey Sam! With “next” you mean in test-passed or also for stable?

This means Discourse Version 2.9

No planned release date yet, but generally we do 2 releases a year.


:rocket: FEATURE: support for chronologically merging posts into existing topic by renato · Pull Request #21374 · discourse/discourse · GitHub


This topic was automatically closed after 2 days. New replies are no longer allowed.