Greg Stein wrote on Wed, Feb 01, 2012 at 03:07:56 -0500: > On Wed, Feb 1, 2012 at 02:28, Daniel Shahaf <danie...@elego.de> wrote: > > Also, you didn't talk about ra_svn at all. Presumably it's trivial > > there (we can just extend the protocol to mirror the new APIs), but > > explicitness won't hurt. > > I presume it should be pretty easy, but have no idea how the svn > protocol does capability negotiation or gets extended. >
There is support for server capabilities and client capabilities. Extension options are: 4. Extensibility ---------------- This protocol may be extended in three ways, in decreasing order of desirability: * Items may be added to any tuple. An old implementation will ignore the extra items. * Named extensions may be expressed at connection initiation time by the client or server. * The protocol version may be bumped. Clients and servers can then choose to any range of protocol versions. > IIRC, the delta editor interface simply gets marshaled over the wire. > Maybe we just pass a plan-skel over the wire? Oh. Wait. svn protocol > doesn't actually use skels, does it? Something similar, but entirely > different if I remember right. (SIGH) ... I guess we can always embed Yes. It doesn't use skels but another similar syntax with a slightly different marshalling syntax. > a serialized skel within svn's other-funky serialization format. > > Oh. And that is an interesting point. We need server-side processing > of a commit plan. Maybe the plan code goes down into libsvn_subr so > both sides can create/consume/process the plans. I suspect that > server-side processing would go into libsvn_repos and use existing FS > APIs to pass/fail a commit plan. > > Cheers, > -g