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