[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: How do I enforce a minimum client version when hosted via httpd

From: Ryan Schmidt <subversion-2010d_at_ryandesign.com>
Date: Thu, 7 Oct 2010 04:25:44 -0500

On Oct 7, 2010, at 03:29, Stephen Connolly wrote:

> I remember reading before about a hack/trick that allows you to ensure that the client is at least mergeinfo aware when the repository is served via Apache httpd.
>
> Google is not being co-operative with my attempts to find the Apache HTTPD directive that makes this magic happen.
>
> IIRC the trick is less than perfect, i.e. it just blocks < 1.5.2 clients from connecting (though the version limit could be 1.5.0 or 1.5.1 I recall it being about querying the capabilities of the client and a specific capability was only introduced in 1.5.1 or 1.5.2) A better trick would allow blocking clients less than 1.6.13 from connecting ;-)

There is no Apache directive for this; instead, you can write a clause in your start-commit hook script. From the start-commit.tmpl file created for you in every new repository:

# [1] REPOS-PATH (the path to this repository)
# [2] USER (the authenticated user attempting to commit)
# [3] CAPABILITIES (a colon-separated list of capabilities reported
# by the client; see note below)
#
# Note: The CAPABILITIES parameter is new in Subversion 1.5, and 1.5
# clients will typically report at least the "mergeinfo" capability.
# If there are other capabilities, then the list is colon-separated,
# e.g.: "mergeinfo:some-other-capability" (the order is undefined).

So if the third parameter passed to your start-commit hook script is empty / nonexistent, you know that client is older than 1.5 and you can take some action, such as denying the commit, if that's what you want to do.
Received on 2010-10-07 11:26:30 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.