Hi,
In my previous patch, I just tweaked svnrdump to display the "help"
documentation properly.
This patch would solve the problems that I mentioned in my earlier
patch, such as
1. displaying a better header for "svnrdump --vresion"
2. "svnrdump --version" should *not* accept junk values, like "svnrdump
--version --junk".
I have the patch and the log message attached with this mail.
Please review and comment.
Thanks and regards
Prabhu
[[[
Make svnrdump display the help manual correctly.
* subversion/svnrdump/svnrdump.c
(help_cmd): Now "svnrdump help" would display a better header.
(main) : "svnrdump --version" would *not* accept junk inputs anymore.
Patch by: Prabhu Gnana Sundar <[email protected]>
Suggested by: Kamesh Jayachandran <[email protected]>
]]]
Index: subversion/svnrdump/svnrdump.c
===================================================================
--- subversion/svnrdump/svnrdump.c (revision 1049818)
+++ subversion/svnrdump/svnrdump.c (working copy)
@@ -159,6 +159,7 @@
svn_ra_session_t *session;
const char *url;
svn_boolean_t help;
+ svn_boolean_t version;
svn_opt_revision_t start_revision;
svn_opt_revision_t end_revision;
svn_boolean_t quiet;
@@ -547,6 +548,7 @@
const char *header =
_("general usage: svnrdump SUBCOMMAND URL [-r LOWER[:UPPER]]\n"
"Type 'svnrdump help <subcommand>' for help on a specific subcommand.\n"
+ "Type 'svn --version' to see the program version and RA modules. \n"
"\n"
"Available subcommands:\n");
@@ -747,8 +749,7 @@
config_dir = opt_arg;
break;
case opt_version:
- SVNRDUMP_ERR(version(argv[0], pool));
- exit(EXIT_SUCCESS);
+ opt_baton->version = TRUE;
break;
case 'h':
opt_baton->help = TRUE;
@@ -785,16 +786,29 @@
subcommand = svn_opt_get_canonical_subcommand2(svnrdump__cmd_table,
"help");
}
- else
+ if (subcommand == NULL)
{
if (os->ind >= os->argc)
{
- svn_error_clear(
- svn_cmdline_fprintf(stderr, pool,
- _("Subcommand argument required\n")));
- SVNRDUMP_ERR(help_cmd(NULL, NULL, pool));
- svn_pool_destroy(pool);
- exit(EXIT_FAILURE);
+ if (opt_baton->version)
+ {
+ /* Use the "help" subcommand to handle the "--version" option. */
+ static const svn_opt_subcommand_desc2_t pseudo_cmd =
+ { "--version", help_cmd, {0}, "",
+ {opt_version, /* must accept its own option */
+ } };
+ subcommand = &pseudo_cmd;
+ }
+
+ else
+ {
+ svn_error_clear(
+ svn_cmdline_fprintf(stderr, pool,
+ _("Subcommand argument required\n")));
+ SVNRDUMP_ERR(help_cmd(NULL, NULL, pool));
+ svn_pool_destroy(pool);
+ exit(EXIT_FAILURE);
+ }
}
else
{
@@ -856,6 +870,12 @@
svn_pool_destroy(pool);
exit(EXIT_SUCCESS);
}
+ if (subcommand && strcmp(subcommand->name, "--version") == 0)
+ {
+ SVNRDUMP_ERR(version(argv[0], pool));
+ svn_pool_destroy(pool);
+ exit(EXIT_SUCCESS);
+ }
/* Only continue if the only not option argument is a url */
if ((os->ind != os->argc-1)