Stefan Fuhrmann <stef...@apache.org> writes:

> There seems to be little that could be done here (suggestions welcome).
> The problem is that the asterisk is being expanded by the shell itself.
> I made SVN print its command line parameters and this is the result:
>
>         $ ./subversion/svn/svn ls svn://localhost/kde --search M*
>         0: ./subversion/svn/svn
>         1: ls
>         2: svn://localhost/kde
>         3: --search
>         4: Makefile
>         5: Makefile.in
>
> That can be prevented by adding quotation marks:
>
>         $ ./subversion/svn/svn ls svn://localhost/kde --search "M*"
>         0: ./subversion/svn/svn
>         1: ls
>         2: svn://localhost/kde
>         3: --search
>         4: M*

Unfortunately, on Windows both `--search M*` and (quoted) `--search "M*"`
would expand the asterisk.  While this is not the default shell behavior,
currently it's enabled for svn and a couple of other binaries by linking
to setargv.obj.  In turn, this probably means the command-line client
users on Windows could get quite unexpected results when using the
`--search ARG` syntax.

A potential cheap solution for this issue, I think, would be to make the
--search argument work as a substring to search for in filenames, instead
of using it as a pattern that the (whole) filename should match.  While
there are some cases where the latter approach gives more flexibility,
my guess would be that a substring search would work well in the majority
of scenarios.

(Also, as far as I recall, `log --search` currently searches for a substring,
 so that would be consistent with it, and would probably avoid surprising
 the users by having a switch with the same name, but behaving differently.)


Thanks,
Evgeny Kotkov

Reply via email to