I’m thinking of coding up a special-purpose file-sharing server/client, since I don’t know of any existing software that does what I want. Here is my idea:
The whole system consists of 1 server and any number of clients. The objective of the system is to “share” a directory among the clients. The word “share” is used in a loose sense, as only 1 client at a time is allowed to access (read or modify) the directory at a time. The clients explicitly acquire and release a lock to this directory by communicating with the server. When the server grants a client the lock, the client’s directory is synchronized to match the server’s. When the client requests to release its lock, the server’s directory is synchronized to match that client’s, before the lock is released. When a client has the lock, the directory is available to them locally. The synchronizations use a delta-transfer algorithm to efficiently transfer the changes.
Any thoughts on the idea? Anything out there that does this already, perhaps some version control system?