Evgeny Kotkov wrote:
Maybe, as an alternative to abstracting and promoting this to a public FS API,
we could add a way of performing backend-specific I/O operations through an
API like svn_fs_ioctl()?
Thanks, Evgeny! I like it. Keeping clean modularity is important.
See the attached patch that implements it for existing fsfs stats, dump index
and load index operations, and, as I suppose, may also be extended for the
"get revision size/stats" operation.
+1 on this patch.
Only two minor comments on the patch:
* We could keep the existing private API declarations in
include/private/svn_fs_fs_private.h as well as the new ioctl versions of
them, rather than moving the existing declarations to a local header. It
would reduce the patch size, and some people might like the ability to
link to libsvn_fs_fs directly and and call those functions directly. But
I don't feel strongly about this; either way is fine for me.
* Typo in the test: tets_unrecognized_ioctl(): 'tets' -> 'test'.
I have reviewed and tested it. Can you commit?
I can re-work my patch to implement rev-size as another ioctl.
- Julian