You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/04/26 20:46:40 UTC

svn commit: r1096847 - in /subversion/trunk/subversion: include/private/svn_wc_private.h libsvn_client/changelist.c libsvn_client/info.c libsvn_wc/node.c tests/cmdline/entries-dump.c

Author: hwright
Date: Tue Apr 26 18:46:40 2011
New Revision: 1096847

URL: http://svn.apache.org/viewvc?rev=1096847&view=rev
Log:
Extend the changelist-filtering ability to the libsvn_wc-external node walker,
and use it for out changelist getter.

* subversion/tests/cmdline/entries-dump.c
  (directory_dump): Update caller.

* subversion/include/private/svn_wc_private.h
  (svn_wc__node_walk_children): Add param, and document.

* subversion/libsvn_wc/node.c
  (svn_wc__node_walk_children): Add param, and pass it down the stack.
 
* subversion/libsvn_client/info.c
  (crawl_entries): Don't filter via changelist in the walker.
 
* subversion/libsvn_client/changelist.c
  (get_cl_fn_baton): Remove changelists member.
  (get_node_changelist): Still fetch the changelist (for notification),
    just don't bother filtering on it.
  (svn_client_get_changelists): Use the walker to filter based on changelist.

Modified:
    subversion/trunk/subversion/include/private/svn_wc_private.h
    subversion/trunk/subversion/libsvn_client/changelist.c
    subversion/trunk/subversion/libsvn_client/info.c
    subversion/trunk/subversion/libsvn_wc/node.c
    subversion/trunk/subversion/tests/cmdline/entries-dump.c

Modified: subversion/trunk/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_wc_private.h?rev=1096847&r1=1096846&r2=1096847&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_wc_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_wc_private.h Tue Apr 26 18:46:40 2011
@@ -406,7 +406,8 @@ svn_wc__node_get_copyfrom_info(const cha
 
 /**
  * Call @a walk_callback with @a walk_baton for @a local_abspath and all
- * nodes underneath it, restricted by @a walk_depth.
+ * nodes underneath it, restricted by @a walk_depth, and possibly
+ * @a changelists.
  *
  * If @a show_hidden is true, include hidden nodes, else ignore them.
  */
@@ -414,6 +415,7 @@ svn_error_t *
 svn_wc__node_walk_children(svn_wc_context_t *wc_ctx,
                            const char *local_abspath,
                            svn_boolean_t show_hidden,
+                           const apr_array_header_t *changelists,
                            svn_wc__node_found_func_t walk_callback,
                            void *walk_baton,
                            svn_depth_t walk_depth,

Modified: subversion/trunk/subversion/libsvn_client/changelist.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/changelist.c?rev=1096847&r1=1096846&r2=1096847&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/changelist.c (original)
+++ subversion/trunk/subversion/libsvn_client/changelist.c Tue Apr 26 18:46:40 2011
@@ -130,7 +130,6 @@ struct get_cl_fn_baton
 {
   svn_changelist_receiver_t callback_func;
   void *callback_baton;
-  apr_hash_t *changelists;
   svn_wc_context_t *wc_ctx;
   apr_pool_t *pool;
 };
@@ -148,12 +147,7 @@ get_node_changelist(const char *local_ab
   SVN_ERR(svn_wc__node_get_changelist(&changelist, b->wc_ctx,
                                       local_abspath, pool, pool));
 
-  /* If the the changelist matches one that we're looking for (or we
-     aren't looking for any in particular)... */
-  if (svn_wc__changelist_match(b->wc_ctx, local_abspath,
-                               b->changelists, pool)
-      && ((kind == svn_node_file)
-          || (kind == svn_node_dir)))
+  if (((kind == svn_node_file) || (kind == svn_node_dir)))
     {
 
       /* ...then call the callback function. */
@@ -183,13 +177,9 @@ svn_client_get_changelists(const char *p
   gnb.callback_baton = callback_baton;
   gnb.wc_ctx = ctx->wc_ctx;
   gnb.pool = pool;
-  if (changelists)
-    SVN_ERR(svn_hash_from_cstring_keys(&(gnb.changelists), changelists, pool));
-  else
-    gnb.changelists = NULL;
 
   return svn_error_return(
-    svn_wc__node_walk_children(ctx->wc_ctx, local_abspath, FALSE,
+    svn_wc__node_walk_children(ctx->wc_ctx, local_abspath, FALSE, changelists,
                                get_node_changelist, &gnb, depth,
                                ctx->cancel_func, ctx->cancel_baton, pool));
 }

Modified: subversion/trunk/subversion/libsvn_client/info.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/info.c?rev=1096847&r1=1096846&r2=1096847&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/info.c (original)
+++ subversion/trunk/subversion/libsvn_client/info.c Tue Apr 26 18:46:40 2011
@@ -457,7 +457,7 @@ crawl_entries(const char *local_abspath,
   fe_baton.receiver_baton = receiver_baton;
   fe_baton.wc_ctx = ctx->wc_ctx;
 
-  err = svn_wc__node_walk_children(ctx->wc_ctx, local_abspath, FALSE,
+  err = svn_wc__node_walk_children(ctx->wc_ctx, local_abspath, FALSE, NULL,
                                    info_found_node_callback, &fe_baton, depth,
                                    ctx->cancel_func, ctx->cancel_baton, pool);
 

Modified: subversion/trunk/subversion/libsvn_wc/node.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/node.c?rev=1096847&r1=1096846&r2=1096847&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/node.c (original)
+++ subversion/trunk/subversion/libsvn_wc/node.c Tue Apr 26 18:46:40 2011
@@ -791,6 +791,7 @@ svn_error_t *
 svn_wc__node_walk_children(svn_wc_context_t *wc_ctx,
                            const char *local_abspath,
                            svn_boolean_t show_hidden,
+                           const apr_array_header_t *changelists,
                            svn_wc__node_found_func_t walk_callback,
                            void *walk_baton,
                            svn_depth_t walk_depth,
@@ -800,7 +801,8 @@ svn_wc__node_walk_children(svn_wc_contex
 {
   return svn_error_return(
     svn_wc__internal_walk_children(wc_ctx->db, local_abspath, show_hidden,
-                                   NULL, walk_callback, walk_baton, walk_depth,
+                                   changelists, walk_callback, walk_baton,
+                                   walk_depth,
                                    cancel_func, cancel_baton, scratch_pool));
 }
 

Modified: subversion/trunk/subversion/tests/cmdline/entries-dump.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/entries-dump.c?rev=1096847&r1=1096846&r2=1096847&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/entries-dump.c (original)
+++ subversion/trunk/subversion/tests/cmdline/entries-dump.c Tue Apr 26 18:46:40 2011
@@ -230,7 +230,7 @@ directory_dump(const char *path,
 
   bt.prefix_path = path;
 
-  err = svn_wc__node_walk_children(bt.wc_ctx, bt.root_abspath, FALSE,
+  err = svn_wc__node_walk_children(bt.wc_ctx, bt.root_abspath, FALSE, NULL,
                                    print_dir, &bt, svn_depth_infinity,
                                    NULL, NULL, scratch_pool);
   if (err)