On Sun, May 02, 2010 at 11:44:32PM +0200, Asier Marzo Pérez wrote:
> Hi,
> 
> I'm really interested in knowing more details of commit/update
> machanism, I've read several times this website
> http://svn.apache.org/repos/asf/subversion/trunk/notes/subversion-design.html
> and the information is really interesting but in some steps there is a
> lack of details or not enough information for my pourporses (I comment
> them in the end).

> The problem is that there is some important information left:
> **When is the diff made? 
> **What diff is saved: reverse or foreward?
> **Who applies the diff when a not key revision is required?

This may give you a better idea of how it works:
http://www.red-bean.com/kfogel/beautiful-code/bc-chapter-02.html
It describes the interface used by Subversion to transmit
changes between server and client.

We're in the process of redesigning it:
http://svn.apache.org/repos/asf/subversion/trunk/notes/editor-v2.txt
but the current implementation is still using the old version.

If you need more details reading header files in
http://svn.apache.org/repos/asf/subversion/trunk/include/
as well as the source code itself will give you even more information.
See also 
http://subversion.apache.org/docs/community-guide/general.html#code-to-read

> In the article it is talked about bubbling-up, creating tree, linking
> not modified nodes, etc... but nothing is said about when the complete
> content of a file of non-newer revision, is replaced with the diff

The bubble-up happens in the repository, it is server-side only.
 
> I hope you will keep maintaining such a great Concurrent Versions System as 
> SVN is.

Heh :)
We like to think of SVN as the successor of CVS, not a variant of CVS.
But I guess you mean "version control system", which is one of the most
general names for software such as CVS and SVN?

Cheers,
Stefan

Reply via email to