svntreesvn-checkoutauthz

SVN: Only show specific parts of svn tree to a user


I have a single svn repository for all my projects. In svn I also have a directory which contains the compiled libraries (like .dll, .swc) which are directly referenced by the projects.

I want another developer to do a project for me and I don't want to open up my whole svn tree to him. If it was only about not being able to commit I would just set the read permission in authz, but I don't want that he see's all my other sourcecode.

I don't want him to make two checkouts, one for the project and one for the library folder, because all relative paths would be messed up if I try to check it out and compile it.

So want following: A checkout of trunk by this user should lead to a checkout that contains the folder structure of all to this user relevant directories, omitting all non-relevant.

I.e.: If my svn svn checkout looks like this:

-trunk
|-BinLibrary
|-Project 1
|-Project 2
|-ExternalProjects
 |-Project 3

I want his checkout to look like this:

-trunk
|-BinLibrary
|-ExternalProjects
 |-Project 3

Is that possible? If yes: How?

Any help is appreciated!

Edit: I'm using svnserve in a Windows environment (no apache)


Solution

  • In the authz file, in the username = permission lines, leaving permission empty means that the respective user has no access, not even read. In the manual, consider this example:

    [calc:/branches/calc/bug-142]
    harry = rw
    sally = r
    
    [calc:/branches/calc/bug-142/secret]
    harry =
    

    harry cannot read secret.

    You can give other user no permission on the entire repository, and then on the specific path read-write.