On 10.10.2014 18:08, Julian Foad wrote: > Lieven Govaerts wrote: >>> ra_serf makes a series of valid requests (200 OK) before finally >>> asking the server for REPLAY of r0. In this case the server is >>> googlecode.com. In response to the invalid REPLAY it gave a 500 Server >>> Error response. I will attach a pcap. >> Googlecode returns the 500 Internal Error, svn.apache.org will happily >> return the content of r0. >> IMO googlecode is doing the wrong thing here, there's nothing special >> about r0 (it's empty, but still a valid revision). > Hi Lieven. I disagree with that point. There are two different meanings of > "revision": a > snapshot, and a change between one snapshot and the next. r0 is a valid > snapshot, but it is not a valid *change*. A "replay" request sounds to me > like a request to tell us what changed between snapshot (X - 1) and snapshot > X. (Although it would be *possible* to define that a replay request for r0 > should respond that the difference between revision (-1) and revision (0) is > a valid, empty difference, in my opinion it is not logical to do so.)
Sure it is. The root of the repository was created in r0; it did not exist in r-1. The reason why a replay of r0 is nonsense is that r0 is the same in /every/ repository, so the target repo always has the r0 of the source -- except the revprops, of course. (I don't pretend to know how replay handles revprops.) -- Brane