ViewVC is more strict than our existing WebSVN subversion web interface.
This means that the access_file that you have already setup and that works fine with WebSVN may not have the same behavior with ViewVC.
The main issue between the two interfaces is that ViewVC requires that you give permissions from the top of the repository all the way down. WebSVN allows you to just give permissions in a subfolder and it gives limited implied permissions up to the top.
For Example:
Say you have a repository with the following top level folders:
- Folder-A (limited to you and your development partner)
- Folder-B (viewable by everyone)
- Folder-C (viewable by you)
- rice_config (limited to you)
If your access_file looked like this:
Code Block |
---|
[/] mynetid = rw [/Folder-A] partnernetId = rw [/Folder-B] * = r [/rice_config] mynetid = rw * = |
In WebSVN
- You would have access to Folder-A, Folder-B, and Folder-C because your permissions defined at the root of the tree are inherited all the way down the tree
- Your partner would have access to Folder-A
- The anonymous user would be able to view Folder-B
In ViewVC
- You would have access to Folder-A, Folder-B, and Folder-C because your permissions defiend at the root of the tree are inherited all the way down the tree
- Your partner would not have access to Folder-A because they do not have permissions defined at the root of the tree
- The anonymous user would not be able to view Folder-B because they do not have permissions defined at the root of the tree
To allow your partner and the anonymous user to see their folders you must give them access to the root directory, like this:
Code Block |
---|
[/] mynetid = rw partnernetid = r * = r [/Folder-A] partnernetid = rw [/Folder-B] * = r [/rice_config] mynetid = rw * = |
In ViewVC and WebSVN
- This causes a problem now though. Since permissions are inherited, now your partner and the anonymous user can see everything in your repository.
- Your partner now has access to Folder-A but can also see Folder-B and Folder-C
- The anonymous user can now see Folder-B but can also see Folder-A and Folder-C
- You need to remove their permissions from the subfolder you don't want them in
Code Block |
---|
[/] mynetid = rw partnernetid = r * = r [/Folder-A] partnernetid = rw * = [/Folder-B] * = r [/Folder-C] partnernetid = * = [/rice_config] mynetid = rw * = |
- So, in the end we ended up giving partnernetid and anonymous
read permissions at the root so that they could get to their folders further down the tree.
- Then we had to remove their permissions from the folders that we did not want them to access.