Ability to undo or version edits to a Merge Request Description in GitLab
Problem to solve
There is no way to recover an inadvertently deleted large volume of text from a Merge Request Description, or likewise to restore other changed properties of a Merge Request.
Further details
While editing a Merge Request Description in GitLab, I mistakenly deleted a large volume of text. Then I unwittingly saved the Merge Request, and now there is no way to recover the text I inadvertently deleted. An undo or versioning feature would really help with this scenario. Often the content of a Merge Request Description is quite important, so this is data that should have better protection.
Proposal
A Merge Request (Description and possibly other properties) can be reverted to the previously saved version (effectively, an "undo" feature). At minimum, immediately (as in before they navigate away from the page), but ideally at any time in the future. Better but lower priority would be the ability to revert to one of several previously saved versions (perhaps up to a limited number or time). Even better but even lower priority would be the ability to see differences between the previously saved versions.
As an alternative, or in addition, a preventative mechanism could be put in place. This might be a helpful alternative if undo or versioning are difficult to implement, and it would address at least part of the same problem. For a preventative mechanism, the user could be warned if deleting more than a certain amount of text from the Merge Request Description, such as more than 200 characters, or more than 25% of the text, or something like that.
As one final alternative, some improved logging or notification could potentially allow removed content to be recovered. If the content were added to a secondary channel such as email notifications, or historical logs accessible to the user who made the change, then the content could be restored from there. In other words, the historical content doesn't necessarily have to be stored in GitLab itself in order to address the problem.
Any of the alternatives could be combined for a maximally potent solution.
What does success look like, and how can we measure that?
If a user accidentally makes a significant change to a Merge Request, especially the Description, it is easy to realize the problem and recover their work.