On Fri, May 14, 2004 at 05:14:19PM -0500, bliss@tigris.org wrote:
> Author: bliss
> Date: Fri May 14 17:14:14 2004
> New Revision: 9716
> 
> Modified:
>    trunk/subversion/libsvn_wc/adm_crawler.c
> Log:
> Fix issue #1854 (user data loss on case-insensitive file systems)
> 
> * subversion/libsvn_wc/adm_crawler.c
>   (report_revisions): Call svn_io_check_path for entries that appear
>   to be missing to be sure that they are really missing.
> 
> 
> Modified: trunk/subversion/libsvn_wc/adm_crawler.c
> ==============================================================================
> --- trunk/subversion/libsvn_wc/adm_crawler.c	(original)
> +++ trunk/subversion/libsvn_wc/adm_crawler.c	Fri May 14 17:14:14 2004
> @@ -214,7 +214,7 @@
>        apr_ssize_t klen;
>        void *val;
>        const svn_wc_entry_t *current_entry; 
> -      svn_node_kind_t *dirent_kind;
> +      svn_node_kind_t *dirent_kind, dirent_kind_storage;
>        svn_boolean_t missing = FALSE;
>  
>        /* Clear the iteration subpool here because the loop has a bunch
> @@ -250,7 +250,17 @@
>        /* Is the entry on disk?  Set a flag if not. */
>        dirent_kind = (svn_node_kind_t *) apr_hash_get (dirents, key, klen);
>        if (! dirent_kind)
> -        missing = TRUE;
> +        {
> +          /* It is possible on a case insensitive system that the
> +             entry is not really missing, so we call our trusty but
> +             expensive friend svn_io_check_path to be sure. */
> +          SVN_ERR (svn_io_check_path (this_full_path, &dirent_kind_storage,
> +                                      iterpool));
> +          if (dirent_kind_storage == svn_node_none)
> +            missing = TRUE;
> +          else
> +            dirent_kind = &dirent_kind_storage;
> +        }
Wouldn't it be (marginally) better to put the dirent_kind_storage within
the if block?  There's not really any point in allocating the memory
outside the block if we're not using it. :)
-- 
Ben Reser <ben@reser.org>
http://ben.reser.org
"Conscience is the inner voice which warns us somebody may be looking."
- H.L. Mencken
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat May 15 18:31:27 2004