Revision: 40680
http://brlcad.svn.sourceforge.net/brlcad/?rev=40680&view=rev
Author: starseeker
Date: 2010-09-24 20:37:34 +0000 (Fri, 24 Sep 2010)
Log Message:
-----------
Have svntest create a repository, or if it already has one keep going.
Modified Paths:
--------------
rt^3/branches/subversion-cmake/svntest/main.c
Modified: rt^3/branches/subversion-cmake/svntest/main.c
===================================================================
--- rt^3/branches/subversion-cmake/svntest/main.c 2010-09-24 19:50:12 UTC
(rev 40679)
+++ rt^3/branches/subversion-cmake/svntest/main.c 2010-09-24 20:37:34 UTC
(rev 40680)
@@ -123,7 +123,7 @@
{
if (! err)
return;
- svn_handle_error2(err, stderr, FALSE, "svnadmin: ");
+ svn_handle_error2(err, stderr, FALSE, "svntest: ");
}
@@ -166,26 +166,26 @@
enum
{
- svnadmin__version = SVN_OPT_FIRST_LONGOPT_ID,
- svnadmin__incremental,
- svnadmin__deltas,
- svnadmin__ignore_uuid,
- svnadmin__force_uuid,
- svnadmin__fs_type,
- svnadmin__parent_dir,
- svnadmin__bdb_txn_nosync,
- svnadmin__bdb_log_keep,
- svnadmin__config_dir,
- svnadmin__bypass_hooks,
- svnadmin__use_pre_commit_hook,
- svnadmin__use_post_commit_hook,
- svnadmin__use_pre_revprop_change_hook,
- svnadmin__use_post_revprop_change_hook,
- svnadmin__clean_logs,
- svnadmin__wait,
- svnadmin__pre_1_4_compatible,
- svnadmin__pre_1_5_compatible,
- svnadmin__pre_1_6_compatible
+ svntest__version = SVN_OPT_FIRST_LONGOPT_ID,
+ svntest__incremental,
+ svntest__deltas,
+ svntest__ignore_uuid,
+ svntest__force_uuid,
+ svntest__fs_type,
+ svntest__parent_dir,
+ svntest__bdb_txn_nosync,
+ svntest__bdb_log_keep,
+ svntest__config_dir,
+ svntest__bypass_hooks,
+ svntest__use_pre_commit_hook,
+ svntest__use_post_commit_hook,
+ svntest__use_pre_revprop_change_hook,
+ svntest__use_post_revprop_change_hook,
+ svntest__clean_logs,
+ svntest__wait,
+ svntest__pre_1_4_compatible,
+ svntest__pre_1_5_compatible,
+ svntest__pre_1_6_compatible
};
/* Option codes and descriptions.
@@ -200,74 +200,74 @@
{NULL, '?', 0,
N_("show help on a subcommand")},
- {"version", svnadmin__version, 0,
+ {"version", svntest__version, 0,
N_("show program version information")},
{"revision", 'r', 1,
N_("specify revision number ARG (or X:Y range)")},
- {"incremental", svnadmin__incremental, 0,
+ {"incremental", svntest__incremental, 0,
N_("dump incrementally")},
- {"deltas", svnadmin__deltas, 0,
+ {"deltas", svntest__deltas, 0,
N_("use deltas in dump output")},
- {"bypass-hooks", svnadmin__bypass_hooks, 0,
+ {"bypass-hooks", svntest__bypass_hooks, 0,
N_("bypass the repository hook system")},
{"quiet", 'q', 0,
N_("no progress (only errors) to stderr")},
- {"ignore-uuid", svnadmin__ignore_uuid, 0,
+ {"ignore-uuid", svntest__ignore_uuid, 0,
N_("ignore any repos UUID found in the stream")},
- {"force-uuid", svnadmin__force_uuid, 0,
+ {"force-uuid", svntest__force_uuid, 0,
N_("set repos UUID to that found in stream, if any")},
- {"fs-type", svnadmin__fs_type, 1,
+ {"fs-type", svntest__fs_type, 1,
N_("type of repository: 'fsfs' (default) or 'bdb'")},
- {"parent-dir", svnadmin__parent_dir, 1,
+ {"parent-dir", svntest__parent_dir, 1,
N_("load at specified directory in repository")},
- {"bdb-txn-nosync", svnadmin__bdb_txn_nosync, 0,
+ {"bdb-txn-nosync", svntest__bdb_txn_nosync, 0,
N_("disable fsync at transaction commit [Berkeley DB]")},
- {"bdb-log-keep", svnadmin__bdb_log_keep, 0,
+ {"bdb-log-keep", svntest__bdb_log_keep, 0,
N_("disable automatic log file removal [Berkeley DB]")},
- {"config-dir", svnadmin__config_dir, 1,
+ {"config-dir", svntest__config_dir, 1,
N_("read user configuration files from directory ARG")},
- {"clean-logs", svnadmin__clean_logs, 0,
+ {"clean-logs", svntest__clean_logs, 0,
N_("remove redundant Berkeley DB log files\n"
" from source repository [Berkeley DB]")},
- {"use-pre-commit-hook", svnadmin__use_pre_commit_hook, 0,
+ {"use-pre-commit-hook", svntest__use_pre_commit_hook, 0,
N_("call pre-commit hook before committing revisions")},
- {"use-post-commit-hook", svnadmin__use_post_commit_hook, 0,
+ {"use-post-commit-hook", svntest__use_post_commit_hook, 0,
N_("call post-commit hook after committing revisions")},
- {"use-pre-revprop-change-hook", svnadmin__use_pre_revprop_change_hook, 0,
+ {"use-pre-revprop-change-hook", svntest__use_pre_revprop_change_hook, 0,
N_("call hook before changing revision property")},
- {"use-post-revprop-change-hook", svnadmin__use_post_revprop_change_hook, 0,
+ {"use-post-revprop-change-hook", svntest__use_post_revprop_change_hook, 0,
N_("call hook after changing revision property")},
- {"wait", svnadmin__wait, 0,
+ {"wait", svntest__wait, 0,
N_("wait instead of exit if the repository is in\n"
" use by another process")},
- {"pre-1.4-compatible", svnadmin__pre_1_4_compatible, 0,
+ {"pre-1.4-compatible", svntest__pre_1_4_compatible, 0,
N_("use format compatible with Subversion versions\n"
" earlier than 1.4")},
- {"pre-1.5-compatible", svnadmin__pre_1_5_compatible, 0,
+ {"pre-1.5-compatible", svntest__pre_1_5_compatible, 0,
N_("use format compatible with Subversion versions\n"
" earlier than 1.5")},
- {"pre-1.6-compatible", svnadmin__pre_1_6_compatible, 0,
+ {"pre-1.6-compatible", svntest__pre_1_6_compatible, 0,
N_("use format compatible with Subversion versions\n"
" earlier than 1.6")},
@@ -281,18 +281,18 @@
static const svn_opt_subcommand_desc2_t cmd_table[] =
{
{"create", subcommand_create, {0}, N_
- ("usage: svnadmin create REPOS_PATH\n\n"
+ ("usage: svntest create REPOS_PATH\n\n"
"Create a new, empty repository at REPOS_PATH.\n"),
- {svnadmin__bdb_txn_nosync, svnadmin__bdb_log_keep,
- svnadmin__config_dir, svnadmin__fs_type, svnadmin__pre_1_4_compatible,
- svnadmin__pre_1_5_compatible, svnadmin__pre_1_6_compatible } },
+ {svntest__bdb_txn_nosync, svntest__bdb_log_keep,
+ svntest__config_dir, svntest__fs_type, svntest__pre_1_4_compatible,
+ svntest__pre_1_5_compatible, svntest__pre_1_6_compatible } },
{ NULL, NULL, {0}, NULL, {0} }
};
/* Baton for passing option/argument state to a subcommand function. */
-struct svnadmin_opt_state
+struct svntest_opt_state
{
const char *repository_path;
const char *new_repository_path; /* hotcopy dest. path */
@@ -327,7 +327,7 @@
static svn_error_t *
subcommand_create(apr_getopt_t *os, void *baton, apr_pool_t *pool)
{
- struct svnadmin_opt_state *opt_state = baton;
+ struct svntest_opt_state *opt_state = baton;
svn_repos_t *repos;
apr_hash_t *config;
apr_hash_t *fs_config = apr_hash_make(pool);
@@ -381,7 +381,7 @@
apr_pool_t *pool;
const svn_opt_subcommand_desc2_t *subcommand = NULL;
- struct svnadmin_opt_state opt_state;
+ struct svntest_opt_state opt_state;
apr_getopt_t *os;
int opt_id;
apr_array_header_t *received_opts;
@@ -407,12 +407,12 @@
/* Check library versions */
err = check_lib_versions();
if (err)
- return svn_cmdline_handle_exit_error(err, pool, "svnadmin: ");
+ return svn_cmdline_handle_exit_error(err, pool, "svntest: ");
/* Initialize the FS library. */
err = svn_fs_initialize(pool);
if (err)
- return svn_cmdline_handle_exit_error(err, pool, "svnadmin: ");
+ return svn_cmdline_handle_exit_error(err, pool, "svntest: ");
/* Initialize opt_state. */
memset(&opt_state, 0, sizeof(opt_state));
@@ -434,8 +434,16 @@
apr_signal(SIGXFSZ, SIG_IGN);
#endif
+ char *repo_path = "./test_repository";
+ const char *full_path = svn_path_canonicalize(repo_path, pool);
+ opt_state.repository_path = full_path;
+
+ /* Check if it's already created - if it is, don't try to re-create it */
+ if(svn_repos_find_root_path(full_path, pool)){
+ printf("Repository %s already exists, continuing with test.\n", full_path);
+ } else {
/* Run the subcommand. */
- err = (*subcommand->cmd_func)(os, &opt_state, pool);
+ err = subcommand_create(os, &opt_state, pool);
if (err)
{
/* For argument-related problems, suggest using the 'help'
@@ -444,23 +452,31 @@
|| err->apr_err == SVN_ERR_CL_ARG_PARSING_ERROR)
{
err = svn_error_quick_wrap(err,
- _("Try 'svnadmin help' for more info"));
+ _("Try 'svntest help' for more info"));
}
- return svn_cmdline_handle_exit_error(err, pool, "svnadmin: ");
+ return svn_cmdline_handle_exit_error(err, pool, "svntest: ");
}
else
{
- svn_pool_destroy(pool);
- /* Ensure that everything is written to stdout, so the user will
- see any print errors. */
- err = svn_cmdline_fflush(stdout);
- if (err)
- {
- svn_handle_error2(err, stderr, FALSE, "svnadmin: ");
- svn_error_clear(err);
- return EXIT_FAILURE;
- }
- return EXIT_SUCCESS;
+ printf("Created repository: %s\n", full_path);
}
+ }
+
+ /* Have repository, do something with it */
+
+
+ /* Done, now clean up */
+ svn_pool_destroy(pool);
+ /* Ensure that everything is written to stdout, so the user will
+ see any print errors. */
+ err = svn_cmdline_fflush(stdout);
+ if (err)
+ {
+ svn_handle_error2(err, stderr, FALSE, "svntest: ");
+ svn_error_clear(err);
+ return EXIT_FAILURE;
+ }
+ return EXIT_SUCCESS;
+
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits