Optimistic locking for Issue and Merge Requests
What does this MR do?
It implements Optimistic Locking http://api.rubyonrails.org/classes/ActiveRecord/Locking/Optimistic.html for Issues and MRs but in a bit custom way. We use it for cases when either title or description field is involved in the change.
Why was this MR needed?
We have to prevent data losing.
What are the relevant issue numbers?
https://gitlab.com/gitlab-org/gitlab-ce/issues/12940