On Mon, 2005-06-06 at 13:41 -0700, Daniel Rall wrote:
> On Sun, 2005-06-05 at 21:24 -0500, kfogel@collab.net wrote:
> >Greg Hudson <ghudson@MIT.EDU> writes:
> >> Well, the obvious criticisms are:
> >>
> >> * Operations from 1.0 and 1.1 clients won't be logged. Having an
> >> incomplete log isn't very satisfying.
> >
> >Yes, but there is no way around that, given the impossibility of
> >deducing operations reliably given the information 1.0 and 1.1 send
> >over the wire.
> >
> >We could add a feature whereby the server has the option to reject
> >clients who don't declare that they intend to abide by the logging
> >protocol. That would address the problem, albeit in a somewhat
> >draconian manner ("Upgrade or you can't use our repository!").
>
> This be handled with a hook script or server-side configuration which
> would either reject or allow -- and log "unknown" or don't log at all --
> operations based on client capabilities (negotiated through HTTP headers
> and ra_svn's capabilities announcement mechanism).
After thinking about this for a while, I think Karl and Ben's proposal
is letting ra_dav drive the core architecture too much.
Over ra_svn, it is quite possible for the server to log what the client
is doing (with the exception that we can't distinguish an update from a
checkout), without being told by the client. And it is much, much
better for the server to log actual client operations than "what the
client told me to log".
So, I think the solution should look something like:
* We make no changes to the ra_svn client.
* svnserve logs the operations it sees from the client.
* ra_dav gets the mechanism Karl and Ben are proposing.
* The HTTP access logs can be used to get more reliable (if less
easily interpreted) information about what clients did.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Jun 6 22:51:04 2005