A colleague of mine mentioned that he would like more merge functionality. I think that, perhaps merge should be reworked. I have a lot of projects that I’m currently working on, but I should be able to take a look at some point.
Perhaps the current merge process is a bit dangerous, and over-complicated (at least in the source). From the user’s perspective, a ticket merge simply moves all the articles from a ticket to the parent, any incoming article is then allocated to the parent ticket rather than the old ticket (recursively). If this process was altered, so that merging only ‘tags’ articles to be displayed on the parent ticket, this could make the merge process completely undoable. This could be done by adding a column to the database table that links tickets. (Boolean is_merge indicates whether the link is a merge action). Then, when rendering a ticket, you can render articles from a slightly different query which is a recursive union over the tickets which are merged. The action of un-merging a ticket is then taken by removing the link between the tickets.
@MrGeneration, can you think of any errors that might arise by taking this course of action?