--------------------8-<-------cut-here---------8-<----------------------- --------------------8-<-------cut-here---------8-<----------------------- --------------------8-<-------cut-here---------8-<----------------------- * Locking On a high-level, locking will behave as follows: - Once user "Harry" takes out a lock on foo.txt, only Harry is able to modify or delete foo.txt (or foo.txt's properties). - Any attempt by another user to modify foo.txt will fail. - The policy allowing a user to "break" or "steal" a lock is governed by the force-lock hook. - pre-lock The pre-lock hook is passed the path that is being locked, and the user who is locking the path in question. pre-lock can use svnadmin to find out if the path is already locked, and by whom. - post-lock The post-lock hook is passed the path that was locked, and the user who locked the path in question. - pre-unlock The pre-lock hook is passed the path that is being locked, and the user who is attempting to unlock the path in question. pre-unlock can use svnadmin to find out if the user attempting to unlock is the same user who currently holds the lock. pre-lock allows a lock's removal by returning 0, and prevents lock removal by returning a non-zero value. - post-unlock The post-unlock hook is passed the path that was unlocked, and the user who unlocked the path in question. --------------------8-<-------cut-here---------8-<----------------------- Lock Manipulation via svnadmin svnadmin is going to need to grow a command to lock a path, unlock a path, and discover the lock status of a path. svnadmin's commands should not invoke repository hooks in order to allow an administrator the ability to override any lock from the server itself. - "lock" and "lock --force" - "unlock" and "unlock --force"