There has been talk at my office about creating a package that would version control mysql data (not schemas/migrations).
Basically the process would work like this. Keep in mind the client still uses the backend as normal, image then using it just like a wordpress backend. Client would login select a "branch" give it a name lets say "new users" this would clone a completely new database allowing the user to work on there "branch" without effecting live. Once the client is done making data changes they would merge there data branch into the "master"(live).
Under the hood when merging it would export both live and "new users" branches data to a sql file and do an svn diff and merge the changes.
The situation that arose that enticed the idea was if we have clients that need to make a bunch of changes to there site but dont want to put that data live and while they make changes they dont want to effect other coworkers site changes either. Basically replicated what developers do when working in repositories like Git.
Also if the client works on a dev/demo site the work they do they want to put live.
I wanted to open the discussion to understanding if this is even a good idea? What problems we may run into? Is this a good programming practice when working with data? Does something like this already exist?