[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: RA_SVN TEST FAILURE: log_tests.py 3: test 'svn log' on an empty repository

From: Matt Kraai <kraai_at_alumni.cmu.edu>
Date: 2003-03-18 03:11:05 CET

On Mon, Mar 17, 2003 at 03:14:18PM -0600, Karl Fogel wrote:
> David Summers <david@summersoft.fay.ar.us> writes:
> > Is anyone else seeing this? I've been seeing it for the last couple of
> > days.
> >
> > This run is on Rev 5363.
>
> Yes, I'm seeing this too now, only over ra_svn.
>
> I need to finish up issue #630 right now, so I won't get a chance to
> look at this until that's done. Hope someone else (hint hint) will be
> seized by a desire to have a whack at it before then...

ra_svn isn't passing the error code from svn_repos_get_logs to the
client. The following patch fixes it but it is not compatible
with older servers and clients. Does the Compatibility section of
HACKING refer to ra_svn as well as ra_dav?

* subversion/libsvn_ra_svn/client.c
  (svn_ra_log): Process response after log message data.

* subversion/svnserve/serve.c
  (log_cmd): Send response after log message data.

Index: subversion/libsvn_ra_svn/client.c
===================================================================
--- subversion/libsvn_ra_svn/client.c (revision 5365)
+++ subversion/libsvn_ra_svn/client.c (working copy)
@@ -789,9 +789,6 @@
   SVN_ERR(svn_ra_svn_end_list(conn, pool));
   SVN_ERR(svn_ra_svn_end_list(conn, pool));
 
- /* Read the response. */
- SVN_ERR(svn_ra_svn_read_cmd_response(conn, pool, ""));
-
   /* Read the log messages. */
   subpool = svn_pool_create(pool);
   while (1)
@@ -832,6 +829,10 @@
       apr_pool_clear(subpool);
     }
   apr_pool_destroy(subpool);
+
+ /* Read the response. */
+ SVN_ERR(svn_ra_svn_read_cmd_response(conn, pool, ""));
+
   return SVN_NO_ERROR;
 }
 
Index: subversion/svnserve/serve.c
===================================================================
--- subversion/svnserve/serve.c (revision 5365)
+++ subversion/svnserve/serve.c (working copy)
@@ -761,6 +761,7 @@
 static svn_error_t *log_cmd(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
                             apr_array_header_t *params, void *baton)
 {
+ svn_error_t *err;
   server_baton_t *b = baton;
   svn_revnum_t start_rev, end_rev;
   const char *full_path;
@@ -785,17 +786,17 @@
       *((const char **) apr_array_push(full_paths)) = full_path;
     }
 
- /* Write an empty command-reponse, telling the client logs are coming. */
- SVN_ERR(svn_ra_svn_write_cmd_response(conn, pool, ""));
-
   /* Get logs. (Can't report errors back to the client at this point.) */
   lb.fs_path = b->fs_path;
   lb.conn = conn;
- SVN_ERR(svn_repos_get_logs(b->repos, full_paths, start_rev, end_rev,
- changed_paths, strict_node, log_receiver, &lb,
- pool));
+ err = svn_repos_get_logs(b->repos, full_paths, start_rev, end_rev,
+ changed_paths, strict_node, log_receiver, &lb,
+ pool);
 
- return svn_ra_svn_write_word(conn, pool, "done");
+ SVN_ERR(svn_ra_svn_write_word(conn, pool, "done"));
+ SVN_CMD_ERR(err);
+ SVN_ERR(svn_ra_svn_write_cmd_response(conn, pool, ""));
+ return SVN_NO_ERROR;
 }
 
 static svn_error_t *check_path(svn_ra_svn_conn_t *conn, apr_pool_t *pool,

Matt

-- 
Oink!
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Mar 18 03:12:16 2003

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.