subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Branko ─îibej <>
Subject Re: API to get revision size on disk
Date Tue, 09 Apr 2019 15:18:20 GMT
On 09.04.2019 13:23, Julian Foad wrote:
> I am working on an API to report the size on disk of a given revision, in FSFS. A client
wants this for (human) informational purposes -- so users or administrators can understand
how much space their commits are using.
> Before FSFS f7, this information was easy to obtain from the on-disk size of a revision
file, or for a packed shard by taking (offset[REV] - offset[REV-1]) from the manifest file.
Since f7 it's harder, when revisions are packed.
> This seems a reasonable feature to me.
> The attached patch starts to implement it, providing an API in this form which is like
a cut-down version of svn_fs_fs__get_stats():
> /* Set *REV_SIZE to the total size of objects belonging to revision REVISION
>  * in FS. */
> svn_error_t *
> svn_fs_fs__get_rev_size(apr_off_t *rev_size,
>                         svn_fs_t *fs,
>                         svn_revnum_t revision,
>                         apr_pool_t *scratch_pool);
> and a CLI in this form:
>     $ svnfsfs rev-size /path/to/repo -r1
>     1238 bytes in revision 1
> The definition of "size" I have chosen excludes the index entries, because determining
the on-disk size of them is tricky (they are stored in a variable-length encoding) and their
size is not particularly important for the purposes.
> TODO before commit:
>   * support FSFS pre-f7 and physical addressing mode
>   * simplify implementation by using the existing svn_fs_fs__dump_index() API with a
simple callback
> Any comments?

Is there a reason why this would be hidden away in 'svnfsfs' instead of
'svnadmin'? Other than that the latter would have to return 'something'
for BDB repositories.

-- Brane

View raw message