Ping.
This patch submission has received no comments.

Gavin.


On 30/12/2009, at 00:14 , Kannan wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Kannan wrote:
> [..]
> 
> Attached herewith is the updated/corrected patch to perform the earlier
> proposed functionality.
> 
> [[[
> Log:
> Make `--set-depth (empty|files|immediates) DIR' work, where DIR's depth
> had already been set as `exclude'. Only `infinity' works as of now.
> 
> * subversion/libsvn_wc/crop.c
>  (svn_wc_crop_tree2): Check the 'base status' of the node here and
>   remove the check done using `svn_wc__db_node_hidden()' as it
>   marks  a node as 'hidden' if status is set as
>   `svn_wc__db_status_excluded'.
> 
> * update_editor.c
>  (complete_directory): Call `svn_wc__set_depth' with the requested
>   depth rather than `infinity' by default.
> 
> * entries.c
>  (svn_wc__set_depth): Set the entry's depth to the requested one rather
>   than `infinity' by default if the depth is not `exclude'.
> 
> * wc_db.c
>  (svn_wc__db_temp_op_dir_set_depth): Remove the code which sets the
>   depth as `infinity' if the depth is not `exclude'.
> 
> Patch by: Kannan R <kann...@collab.net>
> ]]]
> 
> 
> - --
> Thanks & Regards,
> Kannan
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> 
> iQEVAwUBSzoApHlTqcY7ytmIAQJAoAf/fA5eU8enaTiY8g8kX1PPxSFYl6hqldNX
> 2AcX7BFD3O8vJ8EtTNqJeauFWdL0Cdw/iPJGbSvDUeKPh1FeEZPz397xUnVdCTFT
> cPDJOZwS6PN1rf+74lOAzf6zHOutM/gllEjq0Pv+06O/F7ENxjshZur7NdxL5TqV
> 6PLKL4//jNKXJITyLddbj/IJV0P61B5DYVuCl8Jjj1+z/l4x1qqEFefTOT+W28CD
> j8kjRYnBbVal6fRRTi2/SFtdFaU/62JDrgLMV8njCqERBXOsYxlhG23ocEEYFeVx
> /uMnMlPoV090EnvRg3VBj1GJ88vlCqbpM/F1J92RrTaTYQYGJWG/vQ==
> =dPp+
> -----END PGP SIGNATURE-----
> Index: subversion/libsvn_wc/crop.c
> ===================================================================
> --- subversion/libsvn_wc/crop.c       (revision 893084)
> +++ subversion/libsvn_wc/crop.c       (working copy)
> @@ -335,17 +335,6 @@
>       _("Can only crop a working copy with a restrictive depth"));
> 
>   {
> -    svn_boolean_t hidden;
> -    SVN_ERR(svn_wc__db_node_hidden(&hidden, db, local_abspath, 
> scratch_pool));
> -
> -    if (hidden)
> -      return svn_error_createf(SVN_ERR_WC_PATH_NOT_FOUND, NULL,
> -                               _("The node '%s' was not found."),
> -                               svn_dirent_local_style(local_abspath,
> -                                                      scratch_pool));
> -  }
> -
> -  {
>     svn_wc__db_status_t status;
>     svn_wc__db_kind_t kind;
> 
> @@ -360,6 +349,13 @@
>       return svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
>         _("Can only crop directories"));
> 
> +    if (status == svn_wc__db_status_not_present
> +        || status == svn_wc__db_status_absent)
> +      return svn_error_createf(SVN_ERR_WC_PATH_NOT_FOUND, NULL,
> +                               _("The node '%s' was not found."),
> +                               svn_dirent_local_style(local_abspath,
> +                                                      scratch_pool));
> +
>     if (status == svn_wc__db_status_deleted ||
>         status == svn_wc__db_status_obstructed_delete)
>       return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
> Index: subversion/libsvn_wc/update_editor.c
> ===================================================================
> --- subversion/libsvn_wc/update_editor.c      (revision 893084)
> +++ subversion/libsvn_wc/update_editor.c      (working copy)
> @@ -706,7 +706,7 @@
>           else
>             {
>               SVN_ERR(svn_wc__set_depth(eb->db, eb->target_abspath,
> -                                        svn_depth_infinity, pool));
> +                                        eb->requested_depth, pool));
>             }
>         }
> 
> Index: subversion/libsvn_wc/entries.c
> ===================================================================
> --- subversion/libsvn_wc/entries.c    (revision 893084)
> +++ subversion/libsvn_wc/entries.c    (working copy)
> @@ -1567,10 +1567,7 @@
>                        : NULL;
> 
>       if (entry != NULL)
> -        {
> -          entry->depth = (depth == svn_depth_exclude) ? svn_depth_exclude
> -                                                      : svn_depth_infinity;
> -        }
> +        entry->depth = depth;
>     }
> 
>   /* ### setting depth exclude on a wcroot breaks svn_wc_crop() */
> Index: subversion/libsvn_wc/wc_db.c
> ===================================================================
> --- subversion/libsvn_wc/wc_db.c      (revision 893084)
> +++ subversion/libsvn_wc/wc_db.c      (working copy)
> @@ -3120,9 +3120,6 @@
>       if (flush_entry_cache)
>         flush_entries(pdh);
> 
> -      depth = (depth == svn_depth_exclude) ? svn_depth_exclude
> -                                           : svn_depth_infinity;
> -
>       VERIFY_USABLE_PDH(pdh);
>       wcroot = pdh->wcroot;
>       sdb = wcroot->sdb;

Reply via email to