On Thu, Mar 28, 2013 at 11:11:15AM -0400, Bo Chen wrote: > I am just starting to investigate into the source code of SVN. > > Can you please give me more introductions for it. In my previous > experiences for network communication, I can simply establish a network > connection, and send the information to the server via the socket, and that > is it. Why SVN is so complicated for it, e.g., depends on the RA layer? > > Thanks.
The sockets SVN uses are managed by APR (see apr.apache.org) which SVN uses as a portability layer. The repository access (RA) layer makes support for multiple protocols possible, so that the client can talk HTTP or the custom SVN protocol to the server, or even use repositories without a server (ra_local file:// URLs).