Improved Question Merging

by Jeff Atwood

on June 10, 2010

The ability to cast a question deletion vote against a closed question is earned at 10,000 reputation. It was always intended as a tool for getting rid of useless, bottom-of-the barrel type closed question content. But lately we've had to deal with a rash of question deletions, some of which I felt destroyed useful answers. To address this issue, we instituted scaled deletion votes. Question deletion still requires at minimum 3 votes from 10k rep users to achieve a delete (or undelete) -- but the more votes a question and its answer have, the more delete votes required to delete it. This is really more of a safety measure than a complete solution, though.

As usual, I blame myself*, but my original advice stands: if there's anything of worth in the answers, the question should be merged with another question rather than being deleted! (and if there's nothing of worth in the question or answers, pull the deletion trigger with my blessing. Heck, while you're at it, give it a double-tap to make sure it stays down.) But our old merge process was kind of, er, broken. Our old merge …

  • destroyed one of the questions

  • left no trace of the old question, leaving users scratching their heads and wondering "what happened to my/this question?"

  • left almost no visible trace of the merge in the revision history of the surviving question

I guess I picked the wrong day to stop sniffing glue when I came up with that merge implementation.

But no more! Our kinder, gentler question merge has none of these problems! It behaves much more like a typical duplicate close, with the exception that the answers are migrated to the target question.

Let's try an example. These two questions are fairly similar, so I'll merge them on our development tier:

  1. Regular expression to find URLs not inside a hyperlink

  2. How to wrap text in a hyperlink ONLY if it isn’t already wrapped in a hyperlink

disclaimer: I am not actually proposing these two particular questions get merged, I just needed a plausible looking example to illustrate this blog post!

If you believe these should be merged, flag them for moderator attention and indicate what you believe the merge target should be. (Yes, merging is still a moderator only function at the moment.) If the moderator agrees, the merge will happen. In this case, I felt #1 had the stronger title, so I did the merge in that direction.

The source merge question isn't deleted, yet; once its answers have been merged into the target, it's left around as a stub for people to find -- with a little signpost directing them to the merge target:

merged by Jeff Atwood ♦ 8 secs ago

this question was merged with Regular expression to find URLs not inside a hyperlink because it is an exact duplicate of that question.

We also record detailed migration records in the revision history of both questions and the migrated answers, so you can always get an audit trail of what happened, and the process is theoretically reversible. (Except for comments on the source question, which are unavoidably de-parented as they are migrated to the target question.)

Now, if the merge source question is eventually deleted, we can handle that, too -- we do an automatic 301 redirect to the merge target.

I'm not necessarily advocating deletion, either; we want some of these merge stub questions hanging around so people can find two "identical" questions that were asked in two totally different ways. The exact, perfect duplicate question, in my experience, is much more rare than people think.

Anyway, now that we finally have a much saner question merge process, I urge you 10k users to take your collective itchy fingers off those deletion triggers and consider -- should this question be merged, instead?

* somehow we forgot to limit the # of delete votes 10k users could cast every day, which was a disaster waiting to happen. Almost every other vote type is rate limited, and for good reason.