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/15 16:52:34 UTC

svn commit: r1092728 - in /subversion/trunk/subversion/svnrdump: load_editor.c load_editor.h svnrdump.c svnrdump.h

Author: hwright
Date: Fri Apr 15 14:52:33 2011
New Revision: 1092728

URL: http://svn.apache.org/viewvc?rev=1092728&view=rev
Log:
Same song, second verse: followup to r1092721 by doing something similar with
the load editor header file.

* subversion/svnrdump/svnrdump.c
  (load_revisions): Update caller.
 
* subversion/svnrdump/svnrdump.h
  (svn_rdump__load_dumpstream): New.

* subversion/svnrdump/load_editor.c
  (parse_baton, directory_baton, node_baton, revision_baton):
    Copied from load_editor.h.
  (svn_rdump__load_dumpstream): Renamed from load_dumpstream().

* subversion/svnrdump/load_editor.h:
  Remove.

Removed:
    subversion/trunk/subversion/svnrdump/load_editor.h
Modified:
    subversion/trunk/subversion/svnrdump/load_editor.c
    subversion/trunk/subversion/svnrdump/svnrdump.c
    subversion/trunk/subversion/svnrdump/svnrdump.h

Modified: subversion/trunk/subversion/svnrdump/load_editor.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnrdump/load_editor.c?rev=1092728&r1=1092727&r2=1092728&view=diff
==============================================================================
--- subversion/trunk/subversion/svnrdump/load_editor.c (original)
+++ subversion/trunk/subversion/svnrdump/load_editor.c Fri Apr 15 14:52:33 2011
@@ -34,7 +34,7 @@
 #include "private/svn_repos_private.h"
 #include "private/svn_ra_private.h"
 
-#include "load_editor.h"
+#include "svnrdump.h"
 
 #define SVNRDUMP_PROP_LOCK SVN_PROP_PREFIX "rdump-lock"
 
@@ -44,6 +44,71 @@
 #define LDR_DBG(x) while(0)
 #endif
 
+
+
+/**
+ * General baton used by the parser functions.
+ */
+struct parse_baton
+{
+  const svn_delta_editor_t *commit_editor;
+  void *commit_edit_baton;
+  svn_ra_session_t *session;
+  svn_ra_session_t *aux_session;
+  const char *uuid;
+  const char *root_url;
+};
+
+/**
+ * Use to wrap the dir_context_t in commit.c so we can keep track of
+ * depth, relpath and parent for open_directory and close_directory.
+ */
+struct directory_baton
+{
+  void *baton;
+  const char *relpath;
+  int depth;
+  struct directory_baton *parent;
+};
+
+/**
+ * Baton used to represent a node; to be used by the parser
+ * functions. Contains a link to the revision baton.
+ */
+struct node_baton
+{
+  const char *path;
+  svn_node_kind_t kind;
+  enum svn_node_action action;
+
+  svn_revnum_t copyfrom_rev;
+  const char *copyfrom_path;
+
+  void *file_baton;
+  const char *base_checksum;
+
+  struct revision_baton *rb;
+};
+
+/**
+ * Baton used to represet a revision; used by the parser
+ * functions. Contains a link to the parser baton.
+ */
+struct revision_baton
+{
+  svn_revnum_t rev;
+  apr_hash_t *revprop_table;
+
+  const svn_string_t *datestamp;
+  const svn_string_t *author;
+
+  struct parse_baton *pb;
+  struct directory_baton *db;
+  apr_pool_t *pool;
+};
+
+
+
 static svn_error_t *
 commit_callback(const svn_commit_info_t *commit_info,
                 void *baton,
@@ -589,12 +654,12 @@ close_revision(void *baton)
 }
 
 svn_error_t *
-load_dumpstream(svn_stream_t *stream,
-                svn_ra_session_t *session,
-                svn_ra_session_t *aux_session,
-                svn_cancel_func_t cancel_func,
-                void *cancel_baton,
-                apr_pool_t *pool)
+svn_rdump__load_dumpstream(svn_stream_t *stream,
+                           svn_ra_session_t *session,
+                           svn_ra_session_t *aux_session,
+                           svn_cancel_func_t cancel_func,
+                           void *cancel_baton,
+                           apr_pool_t *pool)
 {
   svn_repos_parse_fns2_t *parser;
   struct parse_baton *parse_baton;

Modified: subversion/trunk/subversion/svnrdump/svnrdump.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnrdump/svnrdump.c?rev=1092728&r1=1092727&r2=1092728&view=diff
==============================================================================
--- subversion/trunk/subversion/svnrdump/svnrdump.c (original)
+++ subversion/trunk/subversion/svnrdump/svnrdump.c Fri Apr 15 14:52:33 2011
@@ -36,7 +36,6 @@
 #include "svn_string.h"
 #include "svn_props.h"
 
-#include "load_editor.h"
 #include "svnrdump.h"
 
 #include "private/svn_cmdline_private.h"
@@ -447,8 +446,8 @@ load_revisions(svn_ra_session_t *session
   apr_file_open_stdin(&stdin_file, pool);
   stdin_stream = svn_stream_from_aprfile2(stdin_file, FALSE, pool);
 
-  SVN_ERR(load_dumpstream(stdin_stream, session, aux_session, 
-                          check_cancel, NULL, pool));
+  SVN_ERR(svn_rdump__load_dumpstream(stdin_stream, session, aux_session, 
+                                     check_cancel, NULL, pool));
 
   SVN_ERR(svn_stream_close(stdin_stream));
 

Modified: subversion/trunk/subversion/svnrdump/svnrdump.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnrdump/svnrdump.h?rev=1092728&r1=1092727&r2=1092728&view=diff
==============================================================================
--- subversion/trunk/subversion/svnrdump/svnrdump.h (original)
+++ subversion/trunk/subversion/svnrdump/svnrdump.h Fri Apr 15 14:52:33 2011
@@ -30,6 +30,7 @@
 #include "svn_pools.h"
 #include "svn_hash.h"
 #include "svn_delta.h"
+#include "svn_ra.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -51,6 +52,23 @@ svn_rdump__get_dump_editor(const svn_del
                            apr_pool_t *pool);
 
 
+/**
+ * Load the dumpstream carried in @a stream to the location described
+ * by @a session.  Use @a aux_session (which is opened to the same URL
+ * as @a session) for any secondary, out-of-band RA communications
+ * required.  Use @a pool for all memory allocations.  Use @a
+ * cancel_func and @a cancel_baton to check for user cancellation of
+ * the operation (for timely-but-safe termination).
+ */
+svn_error_t *
+svn_rdump__load_dumpstream(svn_stream_t *stream,
+                           svn_ra_session_t *session,
+                           svn_ra_session_t *aux_session,
+                           svn_cancel_func_t cancel_func,
+                           void *cancel_baton,
+                           apr_pool_t *pool);
+
+
 /* Normalize the line ending style of the values of properties in PROPS
  * that "need translation" (according to svn_prop_needs_translation(),
  * currently all svn:* props) so that they contain only LF (\n) line endings.