Author: artagnon
Date: Sun Jul 25 09:20:55 2010
New Revision: 979011
URL: http://svn.apache.org/viewvc?rev=979011&view=rev
Log:
Add a build.conf and get svnrload to build
* build.conf
(svnrdump): Add new section to build svnrdump.
(__ALL__): Add svnrdump.
* subversion/svnrload
(svn:ignore): Copy properties from svnrdump.
* subversion/svnrload/load_editor.c: Change the path to the load
header.
* subversion/svnrload/parse_dumpstream.c
Correct ident to match GNU style
(main): Stub out the callbacks and use the default parser. Also wrap
functions in SVN_INT_ERR appropriately for error handling.
* subversion/svnrload/svnrload.c
(main): Stub out function completely in favor of the main in
parse_dumpstream.c
Modified:
subversion/branches/svnrload/build.conf
subversion/branches/svnrload/subversion/svnrload/ (props changed)
subversion/branches/svnrload/subversion/svnrload/load_editor.c
subversion/branches/svnrload/subversion/svnrload/parse_dumpstream.c
subversion/branches/svnrload/subversion/svnrload/svnrload.c
Modified: subversion/branches/svnrload/build.conf
URL:
http://svn.apache.org/viewvc/subversion/branches/svnrload/build.conf?rev=979011&r1=979010&r2=979011&view=diff
==============================================================================
--- subversion/branches/svnrload/build.conf (original)
+++ subversion/branches/svnrload/build.conf Sun Jul 25 09:20:55 2010
@@ -175,6 +175,13 @@ libs = libsvn_client libsvn_ra libsvn_de
install = bin
manpages = subversion/svnrdump/svnrdump.1
+[svnrload]
+description = Subversion remote repository loader
+type = exe
+path = subversion/svnrload
+libs = libsvn_client libsvn_ra libsvn_delta libsvn_subr apr
+install = bin
+
# Support for GNOME Keyring
[libsvn_auth_gnome_keyring]
description = Subversion GNOME Keyring Library
@@ -1073,7 +1080,7 @@ libs = libsvn_fs_base libsvn_fs_fs
[__ALL__]
type = project
path = build/win32
-libs = svn svnserve svnadmin svnlook svnversion svnrdump svndumpfilter
+libs = svn svnserve svnadmin svnlook svnversion svnrdump svnrload svndumpfilter
mod_authz_svn mod_dav_svn svnsync
[__ALL_TESTS__]
Propchange: subversion/branches/svnrload/subversion/svnrload/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Jul 25 09:20:55 2010
@@ -0,0 +1,8 @@
+svnrload
+svnrload.exe
+.libs
+*.o
+*.lo
+*~
+.*~
+
Modified: subversion/branches/svnrload/subversion/svnrload/load_editor.c
URL:
http://svn.apache.org/viewvc/subversion/branches/svnrload/subversion/svnrload/load_editor.c?rev=979011&r1=979010&r2=979011&view=diff
==============================================================================
--- subversion/branches/svnrload/subversion/svnrload/load_editor.c (original)
+++ subversion/branches/svnrload/subversion/svnrload/load_editor.c Sun Jul 25
09:20:55 2010
@@ -28,7 +28,7 @@
#include "svn_props.h"
#include "svn_dirent_uri.h"
-#include "dump_editor.h"
+#include "load_editor.h"
#define ARE_VALID_COPY_ARGS(p,r) ((p) && SVN_IS_VALID_REVNUM(r))
Modified: subversion/branches/svnrload/subversion/svnrload/parse_dumpstream.c
URL:
http://svn.apache.org/viewvc/subversion/branches/svnrload/subversion/svnrload/parse_dumpstream.c?rev=979011&r1=979010&r2=979011&view=diff
==============================================================================
--- subversion/branches/svnrload/subversion/svnrload/parse_dumpstream.c
(original)
+++ subversion/branches/svnrload/subversion/svnrload/parse_dumpstream.c Sun Jul
25 09:20:55 2010
@@ -9,8 +9,8 @@ new_revision_record(void **revision_bato
void *parse_baton,
apr_pool_t *pool)
{
- printf("new_revision_record called");
- return SVN_NO_ERROR;
+ printf("new_revision_record called");
+ return SVN_NO_ERROR;
}
static svn_error_t *
@@ -19,8 +19,8 @@ new_node_record(void **node_baton,
void *revision_baton,
apr_pool_t *pool)
{
- printf("new_node_record called");
- return SVN_NO_ERROR;
+ printf("new_node_record called");
+ return SVN_NO_ERROR;
}
static svn_error_t *
@@ -28,8 +28,8 @@ uuid_record(const char *uuid,
void *parse_baton,
apr_pool_t *pool)
{
- printf("uuid_record called");
- return SVN_NO_ERROR;
+ printf("uuid_record called");
+ return SVN_NO_ERROR;
}
static svn_error_t *
@@ -37,8 +37,8 @@ set_revision_property(void *baton,
const char *name,
const svn_string_t *value)
{
- printf("set_revision_property called");
- return SVN_NO_ERROR;
+ printf("set_revision_property called");
+ return SVN_NO_ERROR;
}
static svn_error_t *
@@ -46,45 +46,45 @@ set_node_property(void *baton,
const char *name,
const svn_string_t *value)
{
- printf("set_node_property called");
- return SVN_NO_ERROR;
+ printf("set_node_property called");
+ return SVN_NO_ERROR;
}
static svn_error_t *
remove_node_props(void *baton)
{
- printf("remove_node_props called");
- return SVN_NO_ERROR;
+ printf("remove_node_props called");
+ return SVN_NO_ERROR;
}
static svn_error_t *
set_fulltext(svn_stream_t **stream,
void *node_baton)
{
- printf("set_fulltext called");
- return SVN_NO_ERROR;
+ printf("set_fulltext called");
+ return SVN_NO_ERROR;
}
static svn_error_t *
close_node(void *baton)
{
- printf("close_node called");
- return SVN_NO_ERROR;
+ printf("close_node called");
+ return SVN_NO_ERROR;
}
static svn_error_t *
close_revision(void *baton)
{
- printf("close_revision called");
- return SVN_NO_ERROR;
+ printf("close_revision called");
+ return SVN_NO_ERROR;
}
static svn_error_t *
delete_node_property(void *baton,
const char *name)
{
- printf("delete_node_property called");
- return SVN_NO_ERROR;
+ printf("delete_node_property called");
+ return SVN_NO_ERROR;
}
static svn_error_t *
@@ -92,38 +92,42 @@ apply_textdelta(svn_txdelta_window_handl
void **handler_baton,
void *node_baton)
{
- printf("apply_textdelta called");
- return SVN_NO_ERROR;
+ printf("apply_textdelta called");
+ return SVN_NO_ERROR;
}
-int main()
+int
+main(int argc, char **argv)
{
- apr_pool_t *pool;
- apr_file_t *dumpfile;
- svn_stream_t *dumpstream;
- svn_repos_parse_fns2_t *parser;
-
- if (svn_cmdline_init ("parse_dumpstream", stderr) != EXIT_SUCCESS)
- return EXIT_FAILURE;
- pool = svn_pool_create(NULL);
-
- parser = apr_pcalloc(pool, sizeof(*parser));
-
- parser->new_revision_record = new_revision_record;
- parser->new_node_record = new_node_record;
- parser->uuid_record = uuid_record;
- parser->set_revision_property = set_revision_property;
- parser->set_node_property = set_node_property;
- parser->remove_node_props = remove_node_props;
- parser->set_fulltext = set_fulltext;
- parser->close_node = close_node;
- parser->close_revision = close_revision;
- parser->delete_node_property = delete_node_property;
- parser->apply_textdelta = apply_textdelta;
-
- apr_file_open_stdin(&dumpfile, pool);
- dumpstream = svn_stream_from_aprfile2(dumpfile, FALSE, pool);
- svn_repos_parse_dumpstream2(dumpstream, parser, NULL, NULL, NULL, pool);
- svn_pool_destroy(pool);
- return 0;
+ apr_pool_t *pool;
+ apr_file_t *dumpfile;
+ svn_stream_t *dumpstream;
+ svn_repos_parse_fns2_t *parser;
+ struct parser_baton_t *parser_baton;
+
+ if (svn_cmdline_init ("parse_dumpstream", stderr) != EXIT_SUCCESS)
+ return EXIT_FAILURE;
+ pool = svn_pool_create(NULL);
+
+ parser = apr_pcalloc(pool, sizeof(*parser));
+
+ /* parser->new_revision_record = new_revision_record; */
+ /* parser->new_node_record = new_node_record; */
+ /* parser->uuid_record = uuid_record; */
+ /* parser->set_revision_property = set_revision_property; */
+ /* parser->set_node_property = set_node_property; */
+ /* parser->remove_node_props = remove_node_props; */
+ /* parser->set_fulltext = set_fulltext; */
+ /* parser->close_node = close_node; */
+ /* parser->close_revision = close_revision; */
+ /* parser->delete_node_property = delete_node_property; */
+ /* parser->apply_textdelta = apply_textdelta; */
+
+ apr_file_open_stdin(&dumpfile, pool);
+ dumpstream = svn_stream_from_aprfile2(dumpfile, FALSE, pool);
+ SVN_INT_ERR(svn_repos_parse_dumpstream2(dumpstream, parser, NULL,
+ NULL, NULL, pool));
+ SVN_INT_ERR(svn_stream_close(dumpstream));
+ svn_pool_destroy(pool);
+ return 0;
}
Modified: subversion/branches/svnrload/subversion/svnrload/svnrload.c
URL:
http://svn.apache.org/viewvc/subversion/branches/svnrload/subversion/svnrload/svnrload.c?rev=979011&r1=979010&r2=979011&view=diff
==============================================================================
--- subversion/branches/svnrload/subversion/svnrload/svnrload.c (original)
+++ subversion/branches/svnrload/subversion/svnrload/svnrload.c Sun Jul 25
09:20:55 2010
@@ -327,142 +327,142 @@ version(const char *progname, apr_pool_t
while (0)
-int
-main(int argc, const char **argv)
-{
- const char *url = NULL;
- char *revision_cut = NULL;
- svn_revnum_t start_revision = svn_opt_revision_unspecified;
- svn_revnum_t end_revision = svn_opt_revision_unspecified;
- svn_revnum_t latest_revision = svn_opt_revision_unspecified;
- svn_boolean_t quiet = FALSE;
- apr_pool_t *pool = NULL;
- svn_ra_session_t *session = NULL;
- const char *config_dir = NULL;
- const char *username = NULL;
- const char *password = NULL;
- svn_boolean_t no_auth_cache = FALSE;
- svn_boolean_t non_interactive = FALSE;
- apr_getopt_t *os;
-
- if (svn_cmdline_init ("svnrdump", stderr) != EXIT_SUCCESS)
- return EXIT_FAILURE;
-
- pool = svn_pool_create(NULL);
-
- SVNRLOAD_ERR(svn_cmdline__getopt_init(&os, argc, argv, pool));
-
- os->interleave = TRUE; /* Options and arguments can be interleaved */
-
- while (1)
- {
- int opt;
- const char *opt_arg;
- apr_status_t status = apr_getopt_long(os, svnrload__options, &opt,
- &opt_arg);
-
- if (APR_STATUS_IS_EOF(status))
- break;
- if (status != APR_SUCCESS)
- {
- SVNRLOAD_ERR(usage(argv[0], pool));
- exit(EXIT_FAILURE);
- }
-
- switch(opt)
- {
- case 'r':
- {
- revision_cut = strchr(opt_arg, ':');
- if (revision_cut)
- {
- start_revision = (svn_revnum_t)strtoul(opt_arg,
- &revision_cut, 10);
- end_revision = (svn_revnum_t)strtoul(revision_cut + 1,
- NULL, 10);
- }
- else
- start_revision = (svn_revnum_t)strtoul(opt_arg, NULL, 10);
- }
- break;
- case 'q':
- quiet = TRUE;
- break;
- case opt_config_dir:
- config_dir = opt_arg;
- break;
- case opt_version:
- SVNRLOAD_ERR(version(argv[0], pool));
- exit(EXIT_SUCCESS);
- break;
- case 'h':
- SVNRLOAD_ERR(help(argv[0], pool));
- exit(EXIT_SUCCESS);
- break;
- case opt_auth_username:
- SVNRLOAD_ERR(svn_utf_cstring_to_utf8(&username, opt_arg, pool));
- break;
- case opt_auth_password:
- SVNRLOAD_ERR(svn_utf_cstring_to_utf8(&password, opt_arg, pool));
- break;
- case opt_auth_nocache:
- no_auth_cache = TRUE;
- break;
- case opt_non_interactive:
- non_interactive = TRUE;
- break;
- }
- }
-
- /* Only continue if the only not option argument is a url, to allow
- implementing 'svnrdump dump URL' like handling later without breaking
- backward compatibility */
- if ((os->ind != os->argc-1)
- || !svn_path_is_url(os->argv[os->ind]))
- {
- SVNRLOAD_ERR(usage(argv[0], pool));
- exit(EXIT_FAILURE);
- }
-
- SVNRLOAD_ERR(svn_utf_cstring_to_utf8(&url, os->argv[os->ind], pool));
-
- url = svn_uri_canonicalize(os->argv[os->ind], pool);
-
-
- SVNRLOAD_ERR(open_connection(&session,
- url,
- non_interactive,
- username,
- password,
- config_dir,
- no_auth_cache,
- pool));
-
- /* Have sane start_revision and end_revision defaults if unspecified */
- SVNRLOAD_ERR(svn_ra_get_latest_revnum(session, &latest_revision, pool));
- if (start_revision == svn_opt_revision_unspecified)
- start_revision = 0;
- if (end_revision == svn_opt_revision_unspecified)
- end_revision = latest_revision;
- if (end_revision > latest_revision)
- {
- SVN_INT_ERR(svn_cmdline_fprintf(stderr, pool,
- "Revision %ld does not exist.\n",
- end_revision));
- exit(EXIT_FAILURE);
- }
- if (end_revision < start_revision)
- {
- SVN_INT_ERR(svn_cmdline_fprintf(stderr, pool,
- "LOWER cannot be greater "
- "than UPPER.\n"));
- exit(EXIT_FAILURE);
- }
+/* int */
+/* main(int argc, const char **argv) */
+/* { */
+/* const char *url = NULL; */
+/* char *revision_cut = NULL; */
+/* svn_revnum_t start_revision = svn_opt_revision_unspecified; */
+/* svn_revnum_t end_revision = svn_opt_revision_unspecified; */
+/* svn_revnum_t latest_revision = svn_opt_revision_unspecified; */
+/* svn_boolean_t quiet = FALSE; */
+/* apr_pool_t *pool = NULL; */
+/* svn_ra_session_t *session = NULL; */
+/* const char *config_dir = NULL; */
+/* const char *username = NULL; */
+/* const char *password = NULL; */
+/* svn_boolean_t no_auth_cache = FALSE; */
+/* svn_boolean_t non_interactive = FALSE; */
+/* apr_getopt_t *os; */
+
+/* if (svn_cmdline_init ("svnrdump", stderr) != EXIT_SUCCESS) */
+/* return EXIT_FAILURE; */
+
+/* pool = svn_pool_create(NULL); */
+
+/* SVNRLOAD_ERR(svn_cmdline__getopt_init(&os, argc, argv, pool)); */
+
+/* os->interleave = TRUE; /\* Options and arguments can be interleaved *\/ */
+
+/* while (1) */
+/* { */
+/* int opt; */
+/* const char *opt_arg; */
+/* apr_status_t status = apr_getopt_long(os, svnrload__options, &opt, */
+/* &opt_arg); */
+
+/* if (APR_STATUS_IS_EOF(status)) */
+/* break; */
+/* if (status != APR_SUCCESS) */
+/* { */
+/* SVNRLOAD_ERR(usage(argv[0], pool)); */
+/* exit(EXIT_FAILURE); */
+/* } */
+
+/* switch(opt) */
+/* { */
+/* case 'r': */
+/* { */
+/* revision_cut = strchr(opt_arg, ':'); */
+/* if (revision_cut) */
+/* { */
+/* start_revision = (svn_revnum_t)strtoul(opt_arg, */
+/* &revision_cut, 10);
*/
+/* end_revision = (svn_revnum_t)strtoul(revision_cut + 1, */
+/* NULL, 10); */
+/* } */
+/* else */
+/* start_revision = (svn_revnum_t)strtoul(opt_arg, NULL, 10); */
+/* } */
+/* break; */
+/* case 'q': */
+/* quiet = TRUE; */
+/* break; */
+/* case opt_config_dir: */
+/* config_dir = opt_arg; */
+/* break; */
+/* case opt_version: */
+/* SVNRLOAD_ERR(version(argv[0], pool)); */
+/* exit(EXIT_SUCCESS); */
+/* break; */
+/* case 'h': */
+/* SVNRLOAD_ERR(help(argv[0], pool)); */
+/* exit(EXIT_SUCCESS); */
+/* break; */
+/* case opt_auth_username: */
+/* SVNRLOAD_ERR(svn_utf_cstring_to_utf8(&username, opt_arg, pool));
*/
+/* break; */
+/* case opt_auth_password: */
+/* SVNRLOAD_ERR(svn_utf_cstring_to_utf8(&password, opt_arg, pool));
*/
+/* break; */
+/* case opt_auth_nocache: */
+/* no_auth_cache = TRUE; */
+/* break; */
+/* case opt_non_interactive: */
+/* non_interactive = TRUE; */
+/* break; */
+/* } */
+/* } */
+
+/* /\* Only continue if the only not option argument is a url, to allow */
+/* implementing 'svnrdump dump URL' like handling later without breaking
*/
+/* backward compatibility *\/ */
+/* if ((os->ind != os->argc-1) */
+/* || !svn_path_is_url(os->argv[os->ind])) */
+/* { */
+/* SVNRLOAD_ERR(usage(argv[0], pool)); */
+/* exit(EXIT_FAILURE); */
+/* } */
+
+/* SVNRLOAD_ERR(svn_utf_cstring_to_utf8(&url, os->argv[os->ind], pool)); */
+
+/* url = svn_uri_canonicalize(os->argv[os->ind], pool); */
+
+
+/* SVNRLOAD_ERR(open_connection(&session, */
+/* url, */
+/* non_interactive, */
+/* username, */
+/* password, */
+/* config_dir, */
+/* no_auth_cache, */
+/* pool)); */
+
+/* /\* Have sane start_revision and end_revision defaults if unspecified *\/
*/
+/* SVNRLOAD_ERR(svn_ra_get_latest_revnum(session, &latest_revision, pool));
*/
+/* if (start_revision == svn_opt_revision_unspecified) */
+/* start_revision = 0; */
+/* if (end_revision == svn_opt_revision_unspecified) */
+/* end_revision = latest_revision; */
+/* if (end_revision > latest_revision) */
+/* { */
+/* SVN_INT_ERR(svn_cmdline_fprintf(stderr, pool, */
+/* "Revision %ld does not exist.\n", */
+/* end_revision)); */
+/* exit(EXIT_FAILURE); */
+/* } */
+/* if (end_revision < start_revision) */
+/* { */
+/* SVN_INT_ERR(svn_cmdline_fprintf(stderr, pool, */
+/* "LOWER cannot be greater " */
+/* "than UPPER.\n")); */
+/* exit(EXIT_FAILURE); */
+/* } */
- SVNRLOAD_ERR(replay_range(session, url, start_revision, end_revision,
- quiet, pool));
+/* SVNRLOAD_ERR(replay_range(session, url, start_revision, end_revision, */
+/* quiet, pool)); */
- svn_pool_destroy(pool);
+/* svn_pool_destroy(pool); */
- return 0;
-}
+/* return 0; */
+/* } */