I have currently collected a large part of my work under a single and nicely organized repository in subversion.
When another person, say X, needs to collaborate on a sub-project, say /path/to/my/subproject
, I can simply give X permissions to read/write in that specific path.
From my point of view, I still have the nicely structured repository and doesn't need to do anything else than modify some simple permissions for everything to work for X - and from X's point of view, he has just access to the relevant part. Everybody is happy.
In a distributed VCS like git or Mercurial however, all access seems to be given per repository.
I therefore fail to see how to obtain similar functionality as described above in these systems. It seems that I have to create a whole new repository if person X suddenly needs access to parts of my original repository.
Furthermore, if another person, say Y, needs other access rights within the path that X has access to, I have a problem.
Can I obtain similar functionality with differentiated access rights in distributed VCS's as I currently have in subversion? If so, how?