You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by gs...@apache.org on 2012/05/09 23:42:09 UTC

svn commit: r1336414 - in /subversion/trunk/subversion/libsvn_ra_serf: commit.c property.c ra_serf.h serf.c update.c

Author: gstein
Date: Wed May  9 21:42:09 2012
New Revision: 1336414

URL: http://svn.apache.org/viewvc?rev=1336414&view=rev
Log:
There are a number of functions that end up taking only
SVN_INVALID_REVNUM, so just drop that parameter. Also introduce a
utility function to easily fetch a single DAV: property value.

* subversion/libsvn_ra_serf/ra_serf.h:
  (vcc_props, uuid_props, repos_root_props, href_props): removed. unused.
  (svn_ra_serf__fetch_dav_props): utility function to fetch a prop.
  (svn_ra_serf__flatten_props): remove REVISION parameter
  (svn_ra_serf__get_resource_type): remove REVISION parmeter

* subversion/libsvn_ra_serf/property.c:
  (svn_ra_serf__flatten_props): remove REVISION parameter, and just
    encode SVN_INVALID_REVNUM into the walk_all_props call.
  (svn_ra_serf__get_baseline_info): use the new fetch_dav_prop helper
    function. in this side of the 'if' branch, track that REVISION is
    constant, so subtitute it for clarity.
  (svn_ra_serf__get_resource_type): remove REVISION parameter. switch
    to get_prop(), which uses SVN_INVALID_REVNUM
  (svn_ra_serf__fetch_dav_props): new function. implement.

* subversion/libsvn_ra_serf/update.c:
  (svn_ra_serf__get_file): remove SVN_INVALID_REVNUM params from the
    two modified functions

* subversion/libsvn_ra_serf/commit.c:
  (get_version_url): use the new fetch_dav_prop helper
  (svn_ra_serf__change_rev_prop): use the new fetch_dav_prop helper.
    tighten scope of VCC_URL.

* subversion/libsvn_ra_serf/serf.c:
  (svn_ra_serf__get_latest_revnum): leave a todo marker
  (svn_ra_serf__rev_proplist): leave a future simplification marker
  (fetch_path_props): no need to return the PROPFIND request context
    or a revision (which was always SVN_INVALID_REVNUM). switch to use
    svn_ra_serf__retrieve_props() with SVN_INVALID_REVNUM for its
    revision parameter.
  (svn_ra_serf__check_path): update calls to fetch_path_props and
    get_resource_type
  (svn_ra_serf__stat): update call to fetch_path_props. note that
    FETCHED_REV was always SVN_INVALID_REVNUM, so just use that
    throughout the function.
  (resource_is_directory): drop REVISION parameter since it was always
    SVN_INVALID_REVNUM. update call to get_resource_type which also
    always took the constant.
  (svn_ra_serf__get_dir): note that REVISION is always INVALID, and
    just subtitute that accordingly. update call to
    resource_is_directory and flatten_props

Modified:
    subversion/trunk/subversion/libsvn_ra_serf/commit.c
    subversion/trunk/subversion/libsvn_ra_serf/property.c
    subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
    subversion/trunk/subversion/libsvn_ra_serf/serf.c
    subversion/trunk/subversion/libsvn_ra_serf/update.c

Modified: subversion/trunk/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/commit.c?rev=1336414&r1=1336413&r2=1336414&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/commit.c Wed May  9 21:42:09 2012
@@ -497,12 +497,8 @@ get_version_url(const char **checked_in_
     }
   else
     {
-      svn_ra_serf__propfind_context_t *propfind_ctx;
-      apr_hash_t *props;
       const char *propfind_url;
 
-      props = apr_hash_make(pool);
-
       if (SVN_IS_VALID_REVNUM(base_revision))
         {
           const char *bc_url, *bc_relpath;
@@ -523,18 +519,10 @@ get_version_url(const char **checked_in_
           propfind_url = session->session_url.path;
         }
 
-      /* ### switch to svn_ra_serf__retrieve_props  */
-      SVN_ERR(svn_ra_serf__deliver_props(&propfind_ctx, props, session, conn,
-                                         propfind_url, base_revision, "0",
-                                         checked_in_props, NULL, pool));
-      SVN_ERR(svn_ra_serf__wait_for_props(propfind_ctx, session, pool));
-
-      /* We wouldn't get here if the url wasn't found (404), so the checked-in
-         property should have been set. */
-      root_checkout =
-          svn_ra_serf__get_ver_prop(props, propfind_url,
-                                    base_revision, "DAV:", "checked-in");
-
+      SVN_ERR(svn_ra_serf__fetch_dav_prop(&root_checkout,
+                                          conn, propfind_url, base_revision,
+                                          "checked-in",
+                                          pool, pool));
       if (!root_checkout)
         return svn_error_createf(SVN_ERR_RA_DAV_REQUEST_FAILED, NULL,
                                  _("Path '%s' not present"),
@@ -2342,8 +2330,8 @@ svn_ra_serf__change_rev_prop(svn_ra_sess
   svn_ra_serf__session_t *session = ra_session->priv;
   proppatch_context_t *proppatch_ctx;
   commit_context_t *commit;
-  const char *vcc_url, *proppatch_target, *ns;
-  apr_hash_t *props;
+  const char *proppatch_target;
+  const char *ns;
   svn_error_t *err;
 
   if (old_value_p)
@@ -2370,21 +2358,15 @@ svn_ra_serf__change_rev_prop(svn_ra_sess
     }
   else
     {
-      svn_ra_serf__propfind_context_t *propfind_ctx;
+      const char *vcc_url;
 
       SVN_ERR(svn_ra_serf__discover_vcc(&vcc_url, commit->session,
                                         commit->conn, pool));
 
-      props = apr_hash_make(pool);
-
-      /* ### switch to svn_ra_serf__retrieve_props  */
-      SVN_ERR(svn_ra_serf__deliver_props(&propfind_ctx, props, commit->session,
-                                         commit->conn, vcc_url, rev, "0",
-                                         checked_in_props, NULL, pool));
-      SVN_ERR(svn_ra_serf__wait_for_props(propfind_ctx, commit->session, pool));
-
-      proppatch_target = svn_ra_serf__get_ver_prop(props, vcc_url, rev,
-                                                   "DAV:", "href");
+      SVN_ERR(svn_ra_serf__fetch_dav_prop(&proppatch_target,
+                                          commit->conn, vcc_url, rev,
+                                          "href",
+                                          pool, pool));
     }
 
   if (strncmp(name, SVN_PROP_PREFIX, sizeof(SVN_PROP_PREFIX) - 1) == 0)

Modified: subversion/trunk/subversion/libsvn_ra_serf/property.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/property.c?rev=1336414&r1=1336413&r2=1336414&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/property.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/property.c Wed May  9 21:42:09 2012
@@ -825,14 +825,13 @@ svn_error_t *
 svn_ra_serf__flatten_props(apr_hash_t **flat_props,
                            apr_hash_t *props,
                            const char *path,
-                           svn_revnum_t revision,
                            apr_pool_t *result_pool,
                            apr_pool_t *scratch_pool)
 {
   *flat_props = apr_hash_make(result_pool);
 
   return svn_error_trace(svn_ra_serf__walk_all_props(
-                            props, path, revision,
+                            props, path, SVN_INVALID_REVNUM,
                             set_flat_props,
                             *flat_props /* baton */,
                             scratch_pool));
@@ -1029,15 +1028,12 @@ svn_ra_serf__get_baseline_info(const cha
         }
       else
         {
-          apr_hash_t *props;
           svn_revnum_t actual_revision;
 
-          SVN_ERR(svn_ra_serf__retrieve_props(&props, session, conn,
-                                              vcc_url, revision, "0",
-                                              checked_in_props,
+          SVN_ERR(svn_ra_serf__fetch_dav_prop(&baseline_url, conn, vcc_url,
+                                              SVN_INVALID_REVNUM,
+                                              "checked-in",
                                               pool, pool));
-          baseline_url = svn_ra_serf__get_ver_prop(props, vcc_url, revision,
-                                                   "DAV:", "checked-in");
           if (!baseline_url)
             {
               return svn_error_create(SVN_ERR_RA_DAV_OPTIONS_REQ_FAILED, NULL,
@@ -1057,7 +1053,8 @@ svn_ra_serf__get_baseline_info(const cha
             {
               SVN_ERR(retrieve_baseline_info(&actual_revision, &basecoll_url,
                                              session, conn,
-                                             baseline_url, revision, pool));
+                                             baseline_url, SVN_INVALID_REVNUM,
+                                             pool));
               SVN_ERR(svn_ra_serf__blncache_set(session->blncache,
                                                 baseline_url, actual_revision,
                                                 basecoll_url, pool));
@@ -1083,13 +1080,11 @@ svn_ra_serf__get_baseline_info(const cha
 svn_error_t *
 svn_ra_serf__get_resource_type(svn_kind_t *kind,
                                apr_hash_t *props,
-                               const char *url,
-                               svn_revnum_t revision)
+                               const char *url)
 {
   const char *res_type;
 
-  res_type = svn_ra_serf__get_ver_prop(props, url, revision,
-                                       "DAV:", "resourcetype");
+  res_type = svn_ra_serf__get_prop(props, url, "DAV:", "resourcetype");
   if (!res_type)
     {
       /* How did this happen? */
@@ -1109,3 +1104,29 @@ svn_ra_serf__get_resource_type(svn_kind_
 
   return SVN_NO_ERROR;
 }
+
+
+svn_error_t *
+svn_ra_serf__fetch_dav_prop(const char **value,
+                            svn_ra_serf__connection_t *conn,
+                            const char *url,
+                            svn_revnum_t revision,
+                            const char *propname,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool)
+{
+  apr_hash_t *props;
+
+  SVN_ERR(svn_ra_serf__retrieve_props(&props, conn->session, conn, url,
+                                      revision, "0", checked_in_props,
+                                      scratch_pool, scratch_pool));
+
+  /* We wouldn't get here if the resource was not found (404), so the
+     property should be present.
+
+     Note: it is okay to call apr_pstrdup() with NULL.  */
+  *value = apr_pstrdup(result_pool, svn_ra_serf__get_ver_prop(
+                         props, url, revision, "DAV:", propname));
+
+  return SVN_NO_ERROR;
+}

Modified: subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h?rev=1336414&r1=1336413&r2=1336414&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h Wed May  9 21:42:09 2012
@@ -280,36 +280,12 @@ static const svn_ra_serf__dav_props_t al
   { NULL }
 };
 
-static const svn_ra_serf__dav_props_t vcc_props[] =
-{
-  { "DAV:", "version-controlled-configuration" },
-  { NULL }
-};
-
 static const svn_ra_serf__dav_props_t check_path_props[] =
 {
   { "DAV:", "resourcetype" },
   { NULL }
 };
 
-static const svn_ra_serf__dav_props_t uuid_props[] =
-{
-  { SVN_DAV_PROP_NS_DAV, "repository-uuid" },
-  { NULL }
-};
-
-static const svn_ra_serf__dav_props_t repos_root_props[] =
-{
-  { SVN_DAV_PROP_NS_DAV, "baseline-relative-path" },
-  { NULL }
-};
-
-static const svn_ra_serf__dav_props_t href_props[] =
-{
-  { "DAV:", "href" },
-  { NULL }
-};
-
 /* WC props compatibility with ra_neon. */
 #define SVN_RA_SERF__WC_CHECKED_IN_URL SVN_PROP_WC_PREFIX "ra_dav:version-url"
 
@@ -919,6 +895,29 @@ svn_ra_serf__retrieve_props(apr_hash_t *
                             apr_pool_t *result_pool,
                             apr_pool_t *scratch_pool);
 
+
+/* Using CONN, fetch a DAV: property from the resource identified by URL
+   within REVISION. The PROPNAME may be one of:
+
+     "checked-in"
+     "href"
+
+   The resulting value will be allocated in RESULT_POOL, and may be NULL
+   if the property does not exist (note: "href" always exists).
+
+   This function performs the request synchronously.
+
+   Temporary allocations are made in SCRATCH_POOL.  */
+svn_error_t *
+svn_ra_serf__fetch_dav_prop(const char **value,
+                            svn_ra_serf__connection_t *conn,
+                            const char *url,
+                            svn_revnum_t revision,
+                            const char *propname,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool);
+
+
 /* Set PROPS for PATH at REV revision with a NS:NAME VAL.
  *
  * The POOL governs allocation.
@@ -992,6 +991,8 @@ svn_ra_serf__select_revprops(apr_hash_t 
    rewrite from wire names (DAV) to SVN names. This mapping is managed
    by the svn_ra_serf__set_baton_props() function.
 
+   ### REV is constant: SVN_INVALID_REVNUM
+
    FLAT_PROPS is allocated in RESULT_POOL.
    ### right now, we do a shallow copy from PROPS to FLAT_PROPS. therefore,
    ### the names and values in PROPS must be in the proper pool.
@@ -1001,7 +1002,6 @@ svn_error_t *
 svn_ra_serf__flatten_props(apr_hash_t **flat_props,
                            apr_hash_t *props,
                            const char *path,
-                           svn_revnum_t revision,
                            apr_pool_t *result_pool,
                            apr_pool_t *scratch_pool);
 
@@ -1043,8 +1043,7 @@ svn_ra_serf__set_prop(apr_hash_t *props,
 svn_error_t *
 svn_ra_serf__get_resource_type(svn_kind_t *kind,
                                apr_hash_t *props,
-                               const char *url,
-                               svn_revnum_t revision);
+                               const char *url);
 
 
 /** MERGE-related functions **/

Modified: subversion/trunk/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/serf.c?rev=1336414&r1=1336413&r2=1336414&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/serf.c Wed May  9 21:42:09 2012
@@ -501,6 +501,8 @@ svn_ra_serf__get_latest_revnum(svn_ra_se
   const char *relative_url, *basecoll_url;
   svn_ra_serf__session_t *session = ra_session->priv;
 
+  /* ### HTTPv2: use OPTIONS to get youngest.  */
+
   return svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session,
                                         NULL, session->session_url.path,
                                         SVN_INVALID_REVNUM, latest_revnum,
@@ -533,6 +535,7 @@ svn_ra_serf__rev_proplist(svn_ra_session
       SVN_ERR(svn_ra_serf__discover_vcc(&propfind_path, session, NULL, pool));
     }
 
+  /* ### fix: fetch hash of *just* the PATH@REV props. no nested hash.  */
   SVN_ERR(svn_ra_serf__retrieve_props(&props, session, session->conns[0],
                                       propfind_path, rev, "0", all_props,
                                       pool, pool));
@@ -560,17 +563,14 @@ svn_ra_serf__rev_prop(svn_ra_session_t *
 }
 
 static svn_error_t *
-fetch_path_props(svn_ra_serf__propfind_context_t **ret_prop_ctx,
-                 apr_hash_t **ret_props,
+fetch_path_props(apr_hash_t **ret_props,
                  const char **ret_path,
-                 svn_revnum_t *ret_revision,
                  svn_ra_serf__session_t *session,
                  const char *rel_path,
                  svn_revnum_t revision,
                  const svn_ra_serf__dav_props_t *desired_props,
                  apr_pool_t *pool)
 {
-  svn_ra_serf__propfind_context_t *prop_ctx;
   apr_hash_t *props;
   const char *path;
 
@@ -582,19 +582,10 @@ fetch_path_props(svn_ra_serf__propfind_c
       path = svn_path_url_add_component2(path, rel_path, pool);
     }
 
-  props = apr_hash_make(pool);
-
   /* If we were given a specific revision, we have to fetch the VCC and
    * do a PROPFIND off of that.
    */
-  if (!SVN_IS_VALID_REVNUM(revision))
-    {
-      SVN_ERR(svn_ra_serf__deliver_props(&prop_ctx, props, session,
-                                         session->conns[0], path, revision,
-                                         "0", desired_props, NULL,
-                                         pool));
-    }
-  else
+  if (SVN_IS_VALID_REVNUM(revision))
     {
       const char *relative_url, *basecoll_url;
 
@@ -608,19 +599,14 @@ fetch_path_props(svn_ra_serf__propfind_c
        */
       path = svn_path_url_add_component2(basecoll_url, relative_url, pool);
       revision = SVN_INVALID_REVNUM;
-      SVN_ERR(svn_ra_serf__deliver_props(&prop_ctx, props, session,
-                                         session->conns[0], path, revision,
-                                         "0", desired_props, NULL,
-                                         pool));
     }
 
-  /* ### switch to svn_ra_serf__retrieve_props?  */
-  SVN_ERR(svn_ra_serf__wait_for_props(prop_ctx, session, pool));
+  SVN_ERR(svn_ra_serf__retrieve_props(&props, session, session->conns[0],
+                                      path, SVN_INVALID_REVNUM, "0",
+                                      desired_props, pool, pool));
 
   *ret_path = path;
-  *ret_prop_ctx = prop_ctx;
   *ret_props = props;
-  *ret_revision = revision;
 
   return SVN_NO_ERROR;
 }
@@ -634,11 +620,9 @@ svn_ra_serf__check_path(svn_ra_session_t
 {
   svn_ra_serf__session_t *session = ra_session->priv;
   apr_hash_t *props;
-  svn_ra_serf__propfind_context_t *prop_ctx;
   const char *path;
-  svn_revnum_t fetched_rev;
 
-  svn_error_t *err = fetch_path_props(&prop_ctx, &props, &path, &fetched_rev,
+  svn_error_t *err = fetch_path_props(&props, &path,
                                       session, rel_path,
                                       revision, check_path_props, pool);
 
@@ -655,8 +639,7 @@ svn_ra_serf__check_path(svn_ra_session_t
       if (err)
         return err;
 
-      SVN_ERR(svn_ra_serf__get_resource_type(&res_kind, props, path,
-                                             fetched_rev));
+      SVN_ERR(svn_ra_serf__get_resource_type(&res_kind, props, path));
       *kind = svn__node_kind_from_kind(res_kind);
     }
 
@@ -876,14 +859,12 @@ svn_ra_serf__stat(svn_ra_session_t *ra_s
 {
   svn_ra_serf__session_t *session = ra_session->priv;
   apr_hash_t *props;
-  svn_ra_serf__propfind_context_t *prop_ctx;
   const char *path;
-  svn_revnum_t fetched_rev;
   svn_error_t *err;
   struct dirent_walker_baton_t dwb;
   svn_tristate_t deadprop_count = svn_tristate_unknown;
 
-  err = fetch_path_props(&prop_ctx, &props, &path, &fetched_rev,
+  err = fetch_path_props(&props, &path,
                          session, rel_path, revision,
                          get_dirent_props(SVN_DIRENT_ALL, session, pool),
                          pool);
@@ -902,7 +883,7 @@ svn_ra_serf__stat(svn_ra_session_t *ra_s
   dwb.entry = apr_pcalloc(pool, sizeof(*dwb.entry));
   dwb.supports_deadprop_count = &deadprop_count;
   dwb.result_pool = pool;
-  SVN_ERR(svn_ra_serf__walk_all_props(props, path, fetched_rev,
+  SVN_ERR(svn_ra_serf__walk_all_props(props, path, SVN_INVALID_REVNUM,
                                       dirent_walker, &dwb,
                                       pool));
 
@@ -914,14 +895,14 @@ svn_ra_serf__stat(svn_ra_session_t *ra_s
          information */
       session->supports_deadprop_count = svn_tristate_false;
 
-      SVN_ERR(fetch_path_props(&prop_ctx, &props, &path, &fetched_rev,
-                               session, rel_path, fetched_rev,
+      SVN_ERR(fetch_path_props(&props, &path,
+                               session, rel_path, SVN_INVALID_REVNUM,
                                get_dirent_props(SVN_DIRENT_ALL, session, pool),
                                pool));
 
-      SVN_ERR(svn_ra_serf__walk_all_props(props, path, fetched_rev,
-                                      dirent_walker, &dwb,
-                                      pool));
+      SVN_ERR(svn_ra_serf__walk_all_props(props, path, SVN_INVALID_REVNUM,
+                                          dirent_walker, &dwb,
+                                          pool));
     }
 
   if (deadprop_count != svn_tristate_unknown)
@@ -938,12 +919,11 @@ svn_ra_serf__stat(svn_ra_session_t *ra_s
  */
 static svn_error_t *
 resource_is_directory(apr_hash_t *props,
-                      const char *path,
-                      svn_revnum_t revision)
+                      const char *path)
 {
   svn_kind_t kind;
 
-  SVN_ERR(svn_ra_serf__get_resource_type(&kind, props, path, revision));
+  SVN_ERR(svn_ra_serf__get_resource_type(&kind, props, path));
 
   if (kind != svn_kind_dir)
     {
@@ -989,6 +969,8 @@ svn_ra_serf__get_dir(svn_ra_session_t *r
       path = svn_path_url_add_component2(basecoll_url, relative_url, pool);
       revision = SVN_INVALID_REVNUM;
     }
+  /* REVISION is always SVN_INVALID_REVNUM  */
+  SVN_ERR_ASSERT(!SVN_IS_VALID_REVNUM(revision));
 
   /* If we're asked for children, fetch them now. */
   if (dirents)
@@ -1001,13 +983,13 @@ svn_ra_serf__get_dir(svn_ra_session_t *r
        */
       dirent_fields |= SVN_DIRENT_KIND;
       SVN_ERR(svn_ra_serf__retrieve_props(&props, session, session->conns[0],
-                                          path, revision, "1",
+                                          path, SVN_INVALID_REVNUM, "1",
                                           get_dirent_props(dirent_fields,
                                                            session, pool),
                                           pool, pool));
 
       /* Check if the path is really a directory. */
-      SVN_ERR(resource_is_directory(props, path, revision));
+      SVN_ERR(resource_is_directory(props, path));
 
       /* We're going to create two hashes to help the walker along.
        * We're going to return the 2nd one back to the caller as it
@@ -1019,8 +1001,9 @@ svn_ra_serf__get_dir(svn_ra_session_t *r
       dirent_walk.supports_deadprop_count = svn_tristate_unknown;
       dirent_walk.result_pool = pool;
 
-      SVN_ERR(svn_ra_serf__walk_all_paths(props, revision, path_dirent_walker,
-                                          &dirent_walk, pool));
+      SVN_ERR(svn_ra_serf__walk_all_paths(props, SVN_INVALID_REVNUM,
+                                          path_dirent_walker, &dirent_walk,
+                                          pool));
 
       if (dirent_walk.supports_deadprop_count == svn_tristate_false
           && session->supports_deadprop_count == svn_tristate_unknown
@@ -1031,7 +1014,7 @@ svn_ra_serf__get_dir(svn_ra_session_t *r
           session->supports_deadprop_count = svn_tristate_false;
           SVN_ERR(svn_ra_serf__retrieve_props(&props, session,
                                               session->conns[0],
-                                              path, revision, "1",
+                                              path, SVN_INVALID_REVNUM, "1",
                                               get_dirent_props(dirent_fields,
                                                                session, pool),
                                               pool, pool));
@@ -1039,7 +1022,7 @@ svn_ra_serf__get_dir(svn_ra_session_t *r
           SVN_ERR(svn_hash__clear(dirent_walk.full_paths, pool));
           SVN_ERR(svn_hash__clear(dirent_walk.base_paths, pool));
 
-          SVN_ERR(svn_ra_serf__walk_all_paths(props, revision,
+          SVN_ERR(svn_ra_serf__walk_all_paths(props, SVN_INVALID_REVNUM,
                                               path_dirent_walker,
                                               &dirent_walk, pool));
         }
@@ -1056,13 +1039,14 @@ svn_ra_serf__get_dir(svn_ra_session_t *r
       apr_hash_t *props;
 
       SVN_ERR(svn_ra_serf__retrieve_props(&props, session, session->conns[0],
-                                          path, revision, "0", all_props,
+                                          path, SVN_INVALID_REVNUM, "0",
+                                          all_props,
                                           pool, pool));
+
       /* Check if the path is really a directory. */
-      SVN_ERR(resource_is_directory(props, path, revision));
+      SVN_ERR(resource_is_directory(props, path));
 
-      SVN_ERR(svn_ra_serf__flatten_props(ret_props, props, path, revision,
-                                         pool, pool));
+      SVN_ERR(svn_ra_serf__flatten_props(ret_props, props, path, pool, pool));
     }
 
   return SVN_NO_ERROR;

Modified: subversion/trunk/subversion/libsvn_ra_serf/update.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/update.c?rev=1336414&r1=1336413&r2=1336414&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/update.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/update.c Wed May  9 21:42:09 2012
@@ -2917,8 +2917,7 @@ svn_ra_serf__get_file(svn_ra_session_t *
                                       pool, pool));
 
   /* Verify that resource type is not colelction. */
-  SVN_ERR(svn_ra_serf__get_resource_type(&res_kind, fetch_props, fetch_url,
-                                         SVN_INVALID_REVNUM));
+  SVN_ERR(svn_ra_serf__get_resource_type(&res_kind, fetch_props, fetch_url));
   if (res_kind != svn_kind_file)
     {
       return svn_error_create(SVN_ERR_FS_NOT_FILE, NULL,
@@ -2929,7 +2928,7 @@ svn_ra_serf__get_file(svn_ra_session_t *
   if (props)
     {
       SVN_ERR(svn_ra_serf__flatten_props(props, fetch_props, fetch_url,
-                                         SVN_INVALID_REVNUM, pool, pool));
+                                         pool, pool));
     }
 
   if (stream)