[[[
Make many functions added since version 1.0 in the Client API visible
to users of the Perl bindings. They are already swig-wrapped, just not
exported. (issue 2646)

* subversion/bindings/swig/perl/native/Repos.pm:
  Export more API functions.
  (POD Documentation): Added entries documenting dump_fs2 and load_fs2.

  Patch by: Troy Curtis Jr <troycurtisjr@gmail.com>
            me
]]]

=== Repos.pm
==================================================================
--- Repos.pm	(revision 27320)
+++ Repos.pm	(local)
@@ -42,6 +42,106 @@
 
 =over
 
+=item $repos-E<gt>dump_fs($dump_fh, $feedback_fh, $start_rev, $end_rev, $incremental, $cancel_func, $cancel_baton) 
+
+=item $repos-E<gt>dump_fs2($dump_fh, $feedback_fh, $start_rev, $end_rev, $incremental, $deltify, $cancel_func, $cancel_baton) 
+
+Create a dump file of the repository from revision C<$start_rev> to C<$end_rev>
+, store it into the filehandle C<$dump_fh>, and write feedback on the progress
+of the operation to filehandle C<$feedback_fh>.
+
+If C<$incremental> is TRUE, the first revision dumped will be a diff
+against the previous revision (usually it looks like a full dump of
+the tree).
+
+If C<$use_deltas> is TRUE, output only node properties which have
+changed relative to the previous contents, and output text contents
+as svndiff data against the previous contents.  Regardless of how
+this flag is set, the first revision of a non-incremental dump will
+be done with full plain text.  A dump with @a use_deltas set cannot
+be loaded by Subversion 1.0.x.
+
+According to svn_repos.h, the C<$cancel_func> is a function that is called
+periodically and given C<$cancel_baton> as a parameter to determine whether
+the client wishes to cancel the dump.  You must supply C<undef> at the very
+least.
+
+Example:
+
+    use SVN::Core;
+    use SVN::Repos;
+    
+    my $repos = SVN::Repos::open ('/repo/sandbox');
+    
+    open my $fh, ">/tmp/tmp.dump" or die "Cannot open file: $!\n";
+    
+    my $start_rev   = 10;
+    my $end_rev     = 20;
+    my $incremental = 1;
+    my $deltify     = 1;
+    
+    $repos->dump_fs2($fh, \*STDOUT,          # Dump file => $fh, Feedback => STDOUT 
+                     $start_rev, $end_rev,   # Revision Range
+                     $incremental, $deltify, # Options
+                     undef, undef);          # Cancel Function
+    
+    close $fh;
+
+=item $repos->load_fs($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $cancel_func, $cancel_baton);
+
+=item $repos->load_fs2($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $use_pre_commit_hook, $use_post_commit_hook, $cancel_func, $cancel_baton);
+
+Loads a dumpfile specified by the C<$dumpfile_fh> filehandle into the repository. 
+If the dumpstream contains copy history that is unavailable in the repository, 
+an error will be thrown.
+
+The repository's UUID will be updated iff the dumpstream contains a UUID and
+C<$uuid_action> is not equal to C<$SVN::Repos::load_uuid_ignore> and either the 
+repository contains no revisions or C<$uuid_action> is equal to 
+C<$SVN::Repos::load_uuid_force>.
+
+If the dumpstream contains no UUID, then C<$uuid_action> is
+ignored and the repository UUID is not touched.
+
+If C<$parent_dir> is not null, then the parser will reparent all the
+loaded nodes, from root to @a parent_dir.  The directory C<$parent_dir>
+must be an existing directory in the repository.
+
+If C<$use_pre_commit_hook> is set, call the repository's pre-commit
+hook before committing each loaded revision.
+
+If C<$use_post_commit_hook> is set, call the repository's
+post-commit hook after committing each loaded revision.
+
+If C<$cancel_func> is not NULL, it is called periodically with
+C<$cancel_baton> as argument to see if the client wishes to cancel
+the load.
+
+You must at least provide undef for these parameters for the method call 
+to work.
+
+Example: 
+    use SVN::Core;
+    use SVN::Repos;
+    
+    my $repos = SVN::Repos::open ('/repo/test_repo');
+    
+    open my $fh, "/repo/sandbox.dump" or die "Cannot open file: $!\n";
+    
+    my $parent_dir = '/';
+    my $use_pre_commit_hook  = 0;
+    my $use_post_commit_hook = 0;
+    
+    $repos->load_fs2($fh, \*STDOUT,
+                     $SVN::Repos::load_uuid_ignore, # Ignore uuid
+                     $parent_dir,           
+                     $use_pre_commit_hook,  # Use pre-commit hook?
+                     $use_post_commit_hook, # Use post-commit hook?
+                     undef, undef);
+    
+                     
+    close $fh;
+
 =cut
 
 # Build up a list of methods as we go through the file.  Add each method
@@ -51,7 +151,7 @@
 # This should make it easier to keep the documentation and list of methods
 # in sync.
 
-my @methods = ();		# List of methods to wrap
+my @methods = (); # List of methods to wrap
 
 push @methods, qw(fs);
 
@@ -103,8 +203,6 @@
 
 =back
 
-=cut
-
 =head2 ADDITIONAL METHODS
 
 The following methods work, but are not currently documented in this
@@ -159,19 +257,28 @@
 
 =cut
 
-push @methods, qw(get_commit_editor get_commit_editor2
-		  path db_env lock_dir
-		  db_lockfile hook_dir start_commit_hook
-		  pre_commit_hook post_commit_hook
-		  pre_revprop_change_hook post_revprop_change_hook
-		  dated_revision fs_commit_txn fs_begin_txn_for_commit
-		  fs_begin_txn_for_update fs_change_rev_prop
-		  node_editor dump_fs load_fs get_fs_build_parser);
+push @methods, 
+     qw( version open create delete hotcopy recover3 recover2
+         recover db_logfiles path db_env conf_dir svnserve_conf
+         lock_dir db_lockfile db_logs_lockfile hook_dir
+         pre_revprop_change_hook pre_lock_hook pre_unlock_hook
+         begin_report2 begin_report link_path3 link_path2 link_path
+         delete_path finish_report dir_delta2 dir_delta replay2 replay
+         dated_revision stat deleted_rev history2 history
+         trace_node_locations fs_begin_txn_for_commit2
+         fs_begin_txn_for_commit fs_begin_txn_for_update fs_lock
+         fs_unlock fs_change_rev_prop3 fs_change_rev_prop2
+         fs_change_rev_prop fs_revision_prop fs_revision_proplist
+         fs_change_node_prop fs_change_txn_prop node_editor
+         node_from_baton dump_fs2 dump_fs load_fs2 load_fs
+         authz_check_access check_revision_access invoke_authz_func
+         invoke_authz_callback invoke_file_rev_handler
+         invoke_history_func);
 
 {
     no strict 'refs';
     for (@methods) {
-	*{"_p_svn_repos_t::$_"} = *{$_};
+        *{"_p_svn_repos_t::$_"} = *{$_};
     }
 }
 


