Additional question: I can't seem to find an equivalent of "svnlook cat" anywhere... I wanted to avoid calling external programs - commits are slow enough already...
Thanks, Tino. On Thu, Mar 25, 2010 at 03:17:42PM +0100, Tino Schwarze wrote: > Hi there, > > I'm currently implementing commit hooks and struggling with the python > bindings. I took the contributed pre-commit example which uses the "svn" > python module which maps more or less directly to libsvn functions. > > Background: We want to enforce certain global ignores, MIME types etc. > The most coherent way should be to just read our default .svn/config > file and verify against it's settings. BTW: Has anybody done something > similar already? > > Back to python: I managed to use the Python bindings to get a value from > the config file (I didn't want to reinvent the wheel) like this: > > *** > from svn import repos, fs, delta, core, client > > def main(pool, repos_dir): > > # for now, store client configuration in repository root > cfgfile = repos_dir+'/conf/client.conf' > > svncfg = core.svn_config_read (cfgfile, True, pool) > > global_ignores = core.svn_config_get (svncfg, > core.SVN_CONFIG_SECTION_GLOBAL, core.SVN_CONFIG_OPTION_GLOBAL_IGNORES, None) > > *** > > Now I'd like to verify our default set of required MIME types, so I need > to get the contents of the [auto-props] section from the config file. > > libsvn provides the following function which should be suitable for my > needs: > > svn_config_enumerate2(svn_config_t cfg, char section, > svn_config_enumerator2_t callback, void baton, apr_pool_t pool) -> int > > Two questions arise: > > 1. How do I define an appropiate callback in Python? Looking at the SWIG > documentation, I see examples on how to implement Python callbacks but > they don't seem to match the current SVN bindings. I tried passing a > Python method, deriving from svn_config_enumerator2_t etc. -> Segfault. > > 2. What's the baton good for? Is it just some kind of additional data, I > don't need to care about? > > Maybe the devel list is more appropiate for such questions, but I wanted > to try here first. > > Thanks, > > Tino. > > -- > "What we nourish flourishes." - "Was wir nähren erblüht." > > www.lichtkreis-chemnitz.de > www.tisc.de -- "What we nourish flourishes." - "Was wir nähren erblüht." www.lichtkreis-chemnitz.de www.tisc.de