Author: stefan2
Date: Tue Aug 29 09:56:31 2017
New Revision: 1806548
URL: http://svn.apache.org/viewvc?rev=1806548&view=rev
Log:
As Julian discovered, '--search' as used with 'svn log' is may not suitable
for 'svn ls'. File name matching should be case-sensitive and requires
full patterns just like e.g. the ordinary unix command line 'ls' command.
Therefore, introduce a separate '--pattern' option for 'svn log' that works
similar to patterns with Unix command line 'ls'. Since the actual matching
already confirms to that, we only need a different option pre-processing.
* subversion/svn/svn.c
(svn_cl__longopt_t,
svn_cl__options): Add '--pattern' option as a non-normalizing,
case-sensitive alternative to '--search'.
(svn_cl__cmd_table): For 'ls', replace '--search' by '--pattern'.
(sub_main): Handle the new '--pattern' option.
* subversion/svnbench/svnbench.c
(svn_cl__longopt_t,
svn_cl__options,
svn_cl__cmd_table): Replace '--search' by '--pattern'.
(sub_main): Handle the new '--pattern' option.
* subversion/tests/cmdline/basic_tests.py
(filtered_ls): Update option names used by the test.
Modified:
subversion/trunk/subversion/svn/svn.c
subversion/trunk/subversion/svnbench/svnbench.c
subversion/trunk/subversion/tests/cmdline/basic_tests.py
Modified: subversion/trunk/subversion/svn/svn.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/svn.c?rev=1806548&r1=1806547&r2=1806548&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/svn.c (original)
+++ subversion/trunk/subversion/svn/svn.c Tue Aug 29 09:56:31 2017
@@ -145,6 +145,7 @@ typedef enum svn_cl__longopt_t {
opt_show_item,
opt_adds_as_modification,
opt_vacuum_pristines,
+ opt_pattern,
} svn_cl__longopt_t;
@@ -463,6 +464,11 @@ const apr_getopt_option_t svn_cl__option
{"vacuum-pristines", opt_vacuum_pristines, 0,
N_("remove unreferenced pristines from .svn
directory")},
+ {"pattern", opt_pattern, 1,
+ N_("use ARG as search pattern (glob syntax,\n"
+ " "
+ "case-sensitive)")},
+
/* Long-opt Aliases
*
* These have NULL desriptions, but an option code that matches some
@@ -810,7 +816,7 @@ const svn_opt_subcommand_desc2_t svn_cl_
" Size (in bytes)\n"
" Date and time of the last commit\n"),
{'r', 'v', 'R', opt_depth, opt_incremental, opt_xml,
- opt_include_externals, opt_search}, },
+ opt_include_externals, opt_pattern}, },
{ "lock", svn_cl__lock, {0}, N_
("Lock working copy paths or URLs in the repository, so that\n"
@@ -2520,6 +2526,10 @@ sub_main(int *exit_code, int argc, const
case opt_vacuum_pristines:
opt_state.vacuum_pristines = TRUE;
break;
+ case opt_pattern:
+ SVN_ERR(svn_utf_cstring_to_utf8(&utf8_opt_arg, opt_arg, pool));
+ add_search_pattern_group(&opt_state, utf8_opt_arg, pool);
+ break;
default:
/* Hmmm. Perhaps this would be a good place to squirrel away
opts that commands like svn diff might need. Hmmm indeed. */
Modified: subversion/trunk/subversion/svnbench/svnbench.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnbench/svnbench.c?rev=1806548&r1=1806547&r2=1806548&view=diff
==============================================================================
--- subversion/trunk/subversion/svnbench/svnbench.c (original)
+++ subversion/trunk/subversion/svnbench/svnbench.c Tue Aug 29 09:56:31 2017
@@ -69,7 +69,7 @@ typedef enum svn_cl__longopt_t {
opt_trust_server_cert,
opt_trust_server_cert_failures,
opt_changelist,
- opt_search
+ opt_pattern
} svn_cl__longopt_t;
@@ -166,8 +166,10 @@ const apr_getopt_option_t svn_cl__option
N_("use/display additional information from merge\n"
" "
"history")},
- {"search", opt_search, 1,
- N_("use ARG as search pattern (glob syntax)")},
+ {"pattern", opt_pattern, 1,
+ N_("use ARG as search pattern (glob syntax,\n"
+ " "
+ "case-sensitive)")},
/* Long-opt Aliases
*
@@ -260,7 +262,7 @@ const svn_opt_subcommand_desc2_t svn_cl_
" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
" Size (in bytes)\n"
" Date and time of the last commit\n"),
- {'r', 'v', 'q', 'R', opt_depth, opt_search} },
+ {'r', 'v', 'q', 'R', opt_depth, opt_pattern} },
{ "null-log", svn_cl__null_log, {0}, N_
("Fetch the log messages for a set of revision(s) and/or path(s).\n"
@@ -682,13 +684,9 @@ sub_main(int *exit_code, int argc, const
case 'g':
opt_state.use_merge_history = TRUE;
break;
- case opt_search:
+ case opt_pattern:
SVN_ERR(svn_utf_cstring_to_utf8(&utf8_opt_arg, opt_arg, pool));
- SVN_ERR(svn_utf__xfrm(&utf8_opt_arg, utf8_opt_arg,
- strlen(utf8_opt_arg), TRUE, TRUE, &buf));
- add_search_pattern_group(&opt_state,
- apr_pstrdup(pool, utf8_opt_arg),
- pool);
+ add_search_pattern_group(&opt_state, utf8_opt_arg, pool);
break;
default:
/* Hmmm. Perhaps this would be a good place to squirrel away
Modified: subversion/trunk/subversion/tests/cmdline/basic_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/basic_tests.py?rev=1806548&r1=1806547&r2=1806548&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/basic_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/basic_tests.py Tue Aug 29
09:56:31 2017
@@ -3126,7 +3126,7 @@ def filtered_ls(sbox):
"gamma\n" ]
exit_code, output, error = svntest.actions.run_and_verify_svn(
- None, [], 'ls', path, '--depth=infinity', '--search=*a')
+ None, [], 'ls', path, '--depth=infinity', '--pattern=*a')
########################################################################
# Run the tests