> -----Original Message-----
> From: Julian Foad [mailto:julianfoad_at_btopenworld.com]
> Sent: woensdag 19 maart 2014 11:44
> To: Bert Huijben
> Cc: dev_at_subversion.apache.org
> Subject: Re: r1577170 - remove wildcard handling from some .exe's on
> > URL: http://svn.apache.org/r1577170
> > Log:
> > Following up on r1577164, remove the special '*' argument handling from
> > Subversion .exe's except the few that really need this.
> > After this patch
> > $ svnmucc.exe propset svn:special "*" URL -m "set svn:special"
> > will work on Windows, while this would try to evaluate '*' before.
> I understand it's nice to not expand the '*' in this particular case, and
> in all svnmucc commands. However, I am concerned about the inconsistency
> this introduces between the various svn command-line programs. It looks
> † svnmucc propset svn:special "*" URL
> will set the prop val to '*', but
> † svn propset svn:special "*" WC-path
> will expand the '*'.
> Is this really what we want to give the Windows users?
Normal Windows applications don't expand '*' directly when passed on the
commandline (and neither does the Windows default shell). So before this
patch *all* our applications were special in their handling of '*' and '?',
while after this patch only the two applications that really use the
wildcard expansion are special while the other applications work like all
the other applications from all other sources.
It is not that we as Subversion project can set a standard with millions of
other applications out there. I don't think Windows users think about the
argument parsing as being different for svn applications and other
The best fix for Windows users would be to remove the special handling from
'svn' and 'svnadmin' too, and handle the wildcard expansion in the argument
parsing logic *after* we separate them from arguments that don't point to
local paths... This is how well behaved Windows applications do things.
But this would involve adding a lot of Windows support to apis and/or the
svn client that aren't used for this kind of things on other platforms.
With reducing the scope of the 'special argument parsing' to the tools that
really need this, all other applications are much easier to use by scripts,
where they had to apply hacks to provide arguments that may contain a '?' or
'*', because there is no way to escape the arguments at this level.
> - Julian
> [I mentioned it to Bert on IRC:
> > * build.conf
> > † (svn,
> > † svnadmin): Add setargv.obj to msvc-libs.
> > * build/generator/gen_win.py
> > † (get_win_libs): Remove magic dependency of all .exe's.
> > Modified: subversion/trunk/build.conf
> > @@ -146,6 +146,7 @@
> > +msvc-libs = setargv.obj
> > @@ -155,6 +156,7 @@
> > +msvc-libs = setargv.obj
> > Modified: subversion/trunk/build/generator/gen_win.py
> > @@ -867,9 +867,6 @@ class WinGeneratorBase(gen_win_dependenc
> > † † nondeplibs = target.msvc_libs[:]
> > -† † if isinstance(target, gen_base.TargetExe):
> > -† † † nondeplibs.append('setargv.obj')
> > -
Received on 2014-03-19 12:29:59 CET