On Fri, Apr 17, 2015 at 10:10 AM, Julian Foad <julianf...@gmail.com> wrote:

> Stefan Fuhrmann wrote:
> > Thanks for the corrections!
> > Committed as r1674165.
>
> Thanks. Here's another:
>
> [[[
> Index: subversion/libsvn_fs_fs/fs.h
> ===================================================================
> --- subversion/libsvn_fs_fs/fs.h    (revision 1674067)
> +++ subversion/libsvn_fs_fs/fs.h    (working copy)
> @@ -527,7 +527,8 @@ typedef struct representation_t
>    svn_filesize_t size;
>
>    /* The size of the fulltext of the representation. If this is 0,
> -   * the fulltext size is equal to representation size in the rev file, */
> +   * for a plain rep, the real fulltext size is equal to the SIZE field.
> +   * For a delta rep, this field is always the real fulltext size. */
>    svn_filesize_t expanded_size;
>
>    /* Is this a representation (still) within a transaction? */
>

Thanks! Committed with even more commentary as r1674404.


> Index: subversion/libsvn_fs_fs/fs_fs.c
> ===================================================================
> --- subversion/libsvn_fs_fs/fs_fs.c    (revision 1674067)
> +++ subversion/libsvn_fs_fs/fs_fs.c    (working copy)
> @@ -1386,11 +1386,11 @@ svn_fs_fs__file_length(svn_filesize_t *l
>      {
>        /* Work around a FSFS format quirk (see issue #4554).
>
> -         A plain representation may specify its EXPANDED LENGTH as "0"
> +         A plain representation may specify its EXPANDED_SIZE as "0"
>           in which case, the SIZE value is what we want.
>
> -         Because EXPANDED_LENGTH will also be 0 for empty files, while
> -         SIZE is non-null, we need to check wether the content is
> +         Because EXPANDED_SIZE will also be 0 for empty files, while
> +         SIZE may be non-zero (a delta rep), we need to check whether
> the content is
>           actually empty.  We simply compare with the MD5 checksum of
>           empty content (sha-1 is not always available).
>         */
> @@ -1400,7 +1400,7 @@ svn_fs_fs__file_length(svn_filesize_t *l
>        if (memcmp(empty_md5->digest, data_rep->md5_digest,
>                   sizeof(data_rep->md5_digest)))
>          {
> -          /* Contents is not empty, i.e. EXPANDED_LENGTH cannot be the
> +          /* Contents is not empty, i.e. EXPANDED_SIZE cannot be the
>               actual file length. */
>            *length = data_rep->size;
>          }
> ]]]
>

That should be implicitly fixed be r1674400.
It removed all the local handling for special case.

-- Stefan^2.

Reply via email to