On Fri, Oct 02, 2015 at 10:06:26AM +0200, Edward d'Auvergne wrote: > Hi all, > > I was wondering if this should be considered a bug. At the FlightGear > project we have a 6 GB data svn repository for aircraft ( > https://sourceforge.net/projects/flightgear/ , > https://sourceforge.net/p/flightgear/fgaddon/HEAD/tree/ ). A large > quantity of the files, almost 30,000 in number, are XML text files. > > The problem is that modern Subversion clients appear to all be using > libmagic to determine the file type, to then set the svn:mime-type > property. However this is rather problematic: > > $ file -ib Aircraft/747-400/747-400-set.xml > application/xml; charset=us-ascii > > Libmagic detects all these XML files as "application/xml". Hence they > are treated as binary files! There are many other text files with > extensions such as *.ac, *.nas, etc. present in the repository that in > the future might be detected by libmagic as "application/xyz". > > We have looked at disabling [auto-props] both as the user in > ~/.subversion/config and as root in /etc/subversion/config by setting: > > enable-auto-props = no > > And by commenting out the entirety of the [auto-props] section. > However this does not prevent svn:mime-type from being set on all > files. > > As this bad behaviour can be so incredibly damaging for this > repository, I have written pre-commit repository hook script to > specifically to block any file that enters the data repository that > has svn:mime-type set ( > http://thread.gmane.org/gmane.games.flightgear.devel/77606/focus=77796 > ). I also block svn:executable in another script. Below I'll give a > worked example that anyone can use and replicate this problem with. > The problem is that Subversion clients setting svn:mime-type > automatically, even when told not to, and the hook script catching > this causes a lot of developer confusion and prevents the use of 'svn > import'. > > I was wondering if there was anything that has been missed here? Is > this a real bug? The svn:mime-type property is not needed and is not > desired for any file in this repository. Any help would be > appreciated. > > Cheers, > > Edward
Hi Edward, the pre-commit hook script you wrote blocks commits using an undesired client configuration, so that's a good first step. For the second step, there are several ways of tweaking the client-side behaviour. I hope at least one of these alternatives will help you. - compile SVN without libmagic support - write you own magic file and use the MAGIC environment variable to point svn at it, setting the desired mime-type for XML files - configure autoprops for *.xml in ~/.subversion/config to set the svn:mime-type property to 'text/plain'. Autoprops always override automatic detection with libmagic. - set 'enable-magic-file = no' in ~/.subversion/config This option exists only as of Subversion 1.9, I believe. Consider the following trick to view a default configuration in the file /tmp/svncfg/config, which lists all available options in your current version of svn, with comments explaining their purpose: svn help --config-dir /tmp/svncfg less /tmp/svncfg/config