I was wanting to give a client access to my CVS repository (read and write) but only allow them access to a particular branch. I know I can manage that through permissions but I wanted to allow the client to connect to what looks like the trunk but it really be a specific branch. In essence, I want CVS to allow the client to connect to what they think is the trunk but instead get the specified branch.
Here are some ideas of approaches I am considering (but don't know if they are possible):
1. intercept the request as it comes into CVS and tell CVS that for a specified set of users, to change the branch to XYZ branch (like the commitinfo does for commit permissions) - can I just change the environment variables with a shell script when checking the permissions or something like that - this would be the most versitile approach if it is possible
2. create a proxy that the client connects to that then modifies the connection to the specified branch for certain users - I believe this is quite possible but will be difficult to implement
3. since we have clients use an SSH tunnel to the machine, is there a way to add, for certain users (environment variables or special script to wrap the CVS command), a default branch so when they connect to CVS it uses the branch we want them to use - I think this may be the easiest approach
4. create another CVS repository that just connects to another CVS repository at the specified branch (a CVS proxy) - I am skeptical of whether this is even possible
I am not sure which of these is possible or practical but I do NOT want to modify anything on the client side of the connection.