Version Control for Argument Maps

Hello everyone, I’m new here so I hope I’m starting this thread in the right place!

I’m working on a project to host collaborative argument maps (in a manner similar to the MIT Deliberatorium). I’ve run into a roadblock on how to handle versioning of the argument maps. Ideally versioning would work in a way similar to Wikipedia with visibility of which user made what changes when, diffing, reverting changes, etc.

Argument maps are basically just trees, so any version control that can handle a tree data structure would work (the ability to isolate changes in a particular node of the tree would be nice, but not necessary). I’ve considered using Git, but it looks like there might be scalability issues in my initial approach (creating a repository each time a user tries to edit a map) and I’m not sure how to deploy something using temporary Git repositories (ie. to push a user’s changes) to a Platform as a Service (which I would likely be using). I’ve also looked at CKAN and Dat, but I’m not sure that they would fit my needs exactly or which would work best.

Would anyone have suggestions for how should handle version control for my situation?