Noorul Islam K M <noo...@collab.net> writes: > Stefan Sperling <s...@elego.de> writes: > >> On Thu, Mar 03, 2011 at 10:39:11PM +0530, Noorul Islam K M wrote: >> >>> @@ -164,9 +171,18 @@ >>> if (tmpinfo->depth == svn_depth_unknown) >>> tmpinfo->depth = svn_depth_infinity; >>> >>> - SVN_ERR(svn_wc__node_get_schedule(&tmpinfo->schedule, NULL, >>> - wc_ctx, local_abspath, pool)); >>> + if (exclude) >>> + tmpinfo->depth = svn_depth_exclude; >>> >>> + err = svn_wc__node_get_schedule(&tmpinfo->schedule, NULL, >>> + wc_ctx, local_abspath, pool); >>> + >> >> The following needs some curly braces: >> >>> + if (err) >>> + if (exclude && err->apr_err == SVN_ERR_ENTRY_NOT_FOUND) >>> + svn_error_clear(err); >>> + else >>> + return svn_error_return(err); >>> + >>> SVN_ERR(svn_wc_get_wc_root(&tmpinfo->wcroot_abspath, wc_ctx, >>> local_abspath, pool, pool)); >>> > > I saw the warning but I thought it is readable and easily understood. > > Please find attached updated patch. > > Thanks and Regards > Noorul > > Index: subversion/tests/cmdline/depth_tests.py > =================================================================== > --- subversion/tests/cmdline/depth_tests.py (revision 1076929) > +++ subversion/tests/cmdline/depth_tests.py (working copy) > @@ -2348,8 +2348,6 @@ > 'mkdir', 'C') > > > -# Issue 3792. > -@XFail() > @Issue(3792) > def info_excluded(sbox): > "'info' should treat excluded item as versioned" > Index: subversion/svn/info-cmd.c > =================================================================== > --- subversion/svn/info-cmd.c (revision 1076929) > +++ subversion/svn/info-cmd.c (working copy) > @@ -344,6 +344,10 @@ > SVN_ERR(svn_cmdline_printf(pool, _("Depth: immediates\n"))); > break; > > + case svn_depth_exclude: > + SVN_ERR(svn_cmdline_printf(pool, _("Depth: exclude\n"))); > + break; > + > case svn_depth_infinity: > /* Infinity is the default depth for working copy > directories. Let's not print it, it's not special enough > Index: subversion/include/private/svn_wc_private.h > =================================================================== > --- subversion/include/private/svn_wc_private.h (revision 1076929) > +++ subversion/include/private/svn_wc_private.h (working copy) > @@ -764,6 +764,16 @@ > apr_pool_t *result_pool, > apr_pool_t *scratch_pool); > > +/** > + * Find whether @a local_abspath is set with depth exclude using @a wc_ctx. > + */ > +svn_error_t * > +svn_wc__node_depth_is_exclude(svn_boolean_t *exclude, > + svn_wc_context_t *wc_ctx, > + const char *local_abspath, > + apr_pool_t *scratch_pool); > + > + > #ifdef __cplusplus > } > #endif /* __cplusplus */ > Index: subversion/libsvn_wc/node.c > =================================================================== > --- subversion/libsvn_wc/node.c (revision 1076929) > +++ subversion/libsvn_wc/node.c (working copy) > @@ -1528,3 +1528,28 @@ > > return SVN_NO_ERROR; > } > + > +svn_error_t * > +svn_wc__node_depth_is_exclude(svn_boolean_t *exclude, > + svn_wc_context_t *wc_ctx, > + const char *local_abspath, > + apr_pool_t *scratch_pool) > +{ > + svn_wc__db_status_t status; > + svn_error_t *err; > + > + *exclude = FALSE; > + > + err = svn_wc__db_read_info(&status, NULL, NULL, NULL, NULL, NULL, NULL, > + NULL, NULL, NULL, NULL, NULL, NULL, NULL, > + NULL, NULL, NULL, NULL, NULL, NULL, NULL, > + NULL, NULL, NULL, > + wc_ctx->db, local_abspath, scratch_pool, > + scratch_pool); > + > + if ((! err) && (status == svn_wc__db_status_excluded)) > + *exclude = TRUE; > + > + return svn_error_return(err); > +} > + > Index: subversion/libsvn_client/info.c > =================================================================== > --- subversion/libsvn_client/info.c (revision 1076929) > +++ subversion/libsvn_client/info.c (working copy) > @@ -96,13 +96,20 @@ > apr_time_t lock_date; > const svn_checksum_t *checksum; > svn_node_kind_t kind; > + svn_error_t *err; > + svn_boolean_t exclude = FALSE; > > SVN_ERR(svn_wc_read_kind(&kind, wc_ctx, local_abspath, FALSE, pool)); > > if (kind == svn_node_none) > - return svn_error_createf(SVN_ERR_WC_PATH_NOT_FOUND, NULL, > - _("The node '%s' was not found."), > - svn_dirent_local_style(local_abspath, pool)); > + { > + svn_error_clear(svn_wc__node_depth_is_exclude(&exclude, wc_ctx, > + local_abspath, pool)); > + if (! exclude) > + return svn_error_createf(SVN_ERR_WC_PATH_NOT_FOUND, NULL, > + _("The node '%s' was not found."), > + svn_dirent_local_style(local_abspath, > pool)); > + } > > tmpinfo = apr_pcalloc(pool, sizeof(*tmpinfo)); > tmpinfo->kind = kind; > @@ -164,9 +171,20 @@ > if (tmpinfo->depth == svn_depth_unknown) > tmpinfo->depth = svn_depth_infinity; > > - SVN_ERR(svn_wc__node_get_schedule(&tmpinfo->schedule, NULL, > - wc_ctx, local_abspath, pool)); > + if (exclude) > + tmpinfo->depth = svn_depth_exclude; > > + err = svn_wc__node_get_schedule(&tmpinfo->schedule, NULL, > + wc_ctx, local_abspath, pool); > + > + if (err) > + { > + if (exclude && err->apr_err == SVN_ERR_ENTRY_NOT_FOUND) > + svn_error_clear(err); > + else > + return svn_error_return(err); > + } > + > SVN_ERR(svn_wc_get_wc_root(&tmpinfo->wcroot_abspath, wc_ctx, > local_abspath, pool, pool)); >
Stefan, I fixed the warning issue. Is there anything else do be done with this patch? Thanks and Regards Noorul