Does anyone know if a distributed (peer-to-peer) file system has been proposed as a form of file version control? It seems like that would be a nice way to have both redundant backup as well as reduce reliance on a trunk server. I'd research this more, but I'm cut off from Internet access at the moment, so I'll just describe what I think would be cool at a high level:
Versioned files could be stored and tracked via Gnutella-like super peers, none of which would need to contain the entire trunk, but they COULD have redundancy if it was desired. Deltas seem like they'd be trivial to include in the hierarchy, and thus you'd have a full versioning system distributed across your network.
There are distributed version control systems, but they're "distributed" in a different sense than what you describe. Git and Mercurial are distributed in the sense that many users may each have their own copy of the full repository and may communicate with each other as much or as little as they like.
ReplyDeleteOf course, you could operate a version control system on top of a distributed file system if you wanted. :)
I suppose the real issue is that there are multiple ways that a version control system can fail to scale: size of the current tree, size of the history, communication between clients and servers, etc. A new approach should be based on determining where the current system is failing and addressing that particular need. With version control systems, there are a number of different directions that this can (and does) go.