FreeBSD/contrib/subversion/subversion/svnserve/serve.c
/* Accept a report from the client, drive the network editor with the
 * result, and then write an empty command response.  If there is a
 * non-protocol failure, accept_report will abort the edit and return
 * a command error to be reported by handle_commands().
 *
 * If only_empty_entry is not NULL and the report contains only one
 * item, and that item is empty, set *only_empty_entry to TRUE, else
 * set it to FALSE.
 *
 * If from_rev is not NULL, set *from_rev to the revision number from
 * the set-path on ""; if somehow set-path "" never happens, set
 * *from_rev to SVN_INVALID_REVNUM.
 */
Accept a report from the client, drive the network editor with the
result, and then write an empty command response.  If there is a
non-protocol failure, accept_report will abort the edit and return
a command error to be reported by handle_commands().

If only_empty_entry is not NULL and the report contains only one
item, and that item is empty, set *only_empty_entry to TRUE, else
set it to FALSE.

If from_rev is not NULL, set *from_rev to the revision number from
the set-path on ""; if somehow set-path "" never happens, set
*from_rev to SVN_INVALID_REVNUM.
Accept a report from the client drive the network editor with the result and then write an empty command response . If there is a non - protocol failure accept_report will abort the edit and return a command error to be reported by handle_commands () . If only_empty_entry is not NULL and the report contains only one item and that item is empty set * only_empty_entry to TRUE else set it to FALSE . If from_rev is not NULL set * from_rev to the revision number from the set - path on " " ; if somehow set - path " " never happens set * from_rev to SVN_INVALID_REVNUM .
static svn_error_t *accept_report(svn_boolean_t *only_empty_entry,
                                  svn_revnum_t *from_rev,
                                  svn_ra_svn_conn_t *conn, apr_pool_t *pool,
                                  server_baton_t *b, svn_revnum_t rev,
                                  const char *target, const char *tgt_path,
                                  svn_boolean_t text_deltas,
                                  svn_depth_t depth,
                                  svn_boolean_t send_copyfrom_args,
                                  svn_boolean_t ignore_ancestry)
{
  const svn_delta_editor_t *editor;
  void *edit_baton, *report_baton;
  report_driver_baton_t rb;
  svn_error_t *err;
  authz_baton_t ab;
  ab.server = b;
  ab.conn = conn;
  svn_ra_svn_get_editor(&editor, &edit_baton, conn, pool, NULL, NULL);
  SVN_CMD_ERR(svn_repos_begin_report3(&report_baton, rev,
                                      b->repository->repos,
                                      b->repository->fs_path->data, target,
                                      tgt_path, text_deltas, depth,
                                      ignore_ancestry, send_copyfrom_args,
                                      editor, edit_baton,
                                      authz_check_access_cb_func(b),
                                      &ab, svn_ra_svn_zero_copy_limit(conn),
                                      pool));
  rb.sb = b;
  rb.repos_url = svn_path_uri_decode(b->repository->repos_url, pool);
  rb.report_baton = report_baton;
  rb.err = NULL;
  rb.entry_counter = 0;
  rb.only_empty_entries = TRUE;
  rb.from_rev = from_rev;
  if (from_rev)
    *from_rev = SVN_INVALID_REVNUM;
  err = svn_ra_svn__handle_commands2(conn, pool, report_commands, &rb, TRUE);
  if (err)
    {
      svn_error_clear(rb.err);
      return err;
    }
  else if (rb.err)
    {
      SVN_CMD_ERR(rb.err);
    }
  SVN_ERR(svn_ra_svn__write_cmd_response(conn, pool, ""));
  if (only_empty_entry)
    *only_empty_entry = rb.entry_counter == 1 && rb.only_empty_entries;
  return SVN_NO_ERROR;
}
static svn_error_t * accept_report ( svn_boolean_t * only_empty_entry , svn_revnum_t * from_rev , svn_ra_svn_conn_t * conn , apr_pool_t * pool , server_baton_t * b , svn_revnum_t rev , const char * target , const char * tgt_path , svn_boolean_t text_deltas , svn_depth_t depth , svn_boolean_t send_copyfrom_args , svn_boolean_t ignore_ancestry ) { const svn_delta_editor_t * editor ; void * edit_baton , * report_baton ; report_driver_baton_t rb ; svn_error_t * err ; authz_baton_t ab ; ab . server = b ; ab . conn = conn ; svn_ra_svn_get_editor ( & editor , & edit_baton , conn , pool , NULL , NULL ) ; SVN_CMD_ERR ( svn_repos_begin_report3 ( & report_baton , rev , b -> repository -> repos , b -> repository -> fs_path -> data , target , tgt_path , text_deltas , depth , ignore_ancestry , send_copyfrom_args , editor , edit_baton , authz_check_access_cb_func ( b ) , & ab , svn_ra_svn_zero_copy_limit ( conn ) , pool ) ) ; rb . sb = b ; rb . repos_url = svn_path_uri_decode ( b -> repository -> repos_url , pool ) ; rb . report_baton = report_baton ; rb . err = NULL ; rb . entry_counter = 0 ; rb . only_empty_entries = TRUE ; rb . from_rev = from_rev ; if ( from_rev ) * from_rev = SVN_INVALID_REVNUM ; err = svn_ra_svn__handle_commands2 ( conn , pool , report_commands , & rb , TRUE ) ; if ( err ) { svn_error_clear ( rb . err ) ; return err ; } else if ( rb . err ) { SVN_CMD_ERR ( rb . err ) ; } SVN_ERR ( svn_ra_svn__write_cmd_response ( conn , pool , " " ) ) ; if ( only_empty_entry ) * only_empty_entry = rb . entry_counter == 1 && rb . only_empty_entries ; return SVN_NO_ERROR ; }
Accept a report from the client, drive the network editor with the
 result, and then write an empty command response.
Accept a report from the client drive the network editor with the result and then write an empty command response .
/* Make an svn_repos report baton.  Tell it to drive the network editor
   * when the report is complete. */ /* Network or protocol error while handling commands. */ /* Some failure during the reporting or editing operations. */