[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: r1577170 - remove wildcard handling from some .exe's on Windows

From: Bert Huijben <bert_at_qqmail.nl>
Date: Wed, 19 Mar 2014 12:29:16 +0100

> -----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
> Windows
>
> > URL: http://svn.apache.org/r1577170
>
> > Log:
> > Following up on r1577164, remove the special '*' argument handling from
> all
> > 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
maybe
> in all svnmucc commands. However, I am concerned about the inconsistency
> this introduces between the various svn command-line programs. It looks
> like
>
> † 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
applications.

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.

        Bert
>
> - Julian
>
> [I mentioned it to Bert on IRC:
>
<http://colabti.org/irclogger/irclogger_log/svn-dev?date=2014-03-13#l198>.]
>
>
> > * 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

This is an archived mail posted to the Subversion Dev mailing list.