Stefan Sperling wrote on Wed, Feb 22, 2012 at 00:08:35 +0100: > On Tue, Feb 21, 2012 at 11:50:54PM +0100, Stefan Sperling wrote: > > I think svn_wc_parse_externals_description3() should do what you need. > > Does this help you? > > > > The function is mapped in the python bindings: > > > > >>> import svn.wc > > >>> svn.wc.svn_wc_parse_externals_description3 > > <function svn_wc_parse_externals_description3 at 0x20779a758> > > Hmmm... my suggestion probably won't work. > The function doesn't seem to be usable. > > >>> svn.wc.svn_wc_parse_externals_description3("/tmp", "^/branch/gamma foo", > >>> 0) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "/usr/local/lib/python2.7/site-packages/libsvn/wc.py", line 398, in > svn_w > c_parse_externals_description3 > return apply(_wc.svn_wc_parse_externals_description3, args) > ValueError: svn_wc_parse_externals_description3 is not implemented yet > > > But the 1.4 version of this function is working: > > >>> e = svn.wc.svn_wc_parse_externals_description("/tmp", "^/branch/gamma > >>> foo") > >>> e > {'foo': <libsvn.wc.svn_wc_external_item_t; proxy of <Swig Object of type > 'svn_wc > _external_item_t *' at 0x2083e50c0> >} > >>> e['foo'] > <libsvn.wc.svn_wc_external_item_t; proxy of <Swig Object of type > 'svn_wc_externa > l_item_t *' at 0x2083e50c0> > > >>> e['foo'].target_dir > 'foo' > >>> e['foo'].url > '^/branch/gamma' > >>> e['foo'].revision > <libsvn.core.svn_opt_revision_t; proxy of <Swig Object of type > 'svn_opt_revision_t *' at 0x2043d90d0> > > > > But that doesn't provide you with the enhancements of the 1.5 syntax, > e.g. peg-revision support. > > I am not a bindings expert so I don't know what we'd need to do to make > the newer variants of this function work from the bindings.
Based the difference between the signatures of the svn_wc_parse_externals_description() and svn_wc_parse_externals_description2(), I would suspect that someone needs to provide a Python implementation of the following typemap: #ifdef SWIGRUBY %typemap(argout) apr_array_header_t **externals_p { %append_output(svn_swig_rb_apr_array_to_array_external_item2(*$1)); } #endif Daniel (not a swig expert, either)