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? 
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

**What diff is saved: reverse or foreward?
I suppose that reverse-diff is saved but, there is also saved the forward one?? 
(maybe for speeding updates of the clients, for updating a file with the diff 
and not by downloading the whole file)

**Who applies the diff when a not key revision is required?
If server is in revision 58, and a client ask for a file of revision 34 (that 
changed in 45 and 48) 
Does the server send file in revision 58 and reverse diffs of 48 and 45 (and 
the client apply as follows 58---reversediff48---->48------reversediff45--->45 
== 34  ?
Or does the server do that process and send it "ready" to the client ?


I'm designing a little CVS system (client in Java and server in PHP) for 
maximizing the deployability. I will need to face problems of using HTTP 
protocol and web-hosting limitation (also, PHP is not one of my favourites 
lenguages) but I'm trying to analize any cvs just for taking ideas.

I hope you will keep maintaining such a great Concurrent Versions System as SVN 
is.

Goodbye and thanks in advance,
Asier Marzo Pérez
Public University of Navarre

Reply via email to