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

Re: svn+ssh://... shouldn't assume svnserve in user's PATH

From: Greg Hudson <ghudson_at_MIT.EDU>
Date: 2003-08-31 23:53:07 CEST

On Sat, 2003-08-30 at 15:30, Will Partain wrote:
> Could we have something the equivalent of the CVS_SERVER env
> var.? Or compile-time option; or config file thing; or ...

It would be easy enough to set up a CVS_SERVER equivalent, but that kind
of breaks down for people who access more than one repository via
svn+ssh.

A compile-time option is right out.

There are certainly ways to get config options to work, but my thought
process usually goes something like this:

  * We could have a server-dependent option in .subversion/servers. But
that's confusing, because it fragments tunnel configuration.

  * Tunnel configuration could be changed to have a whole section for
each scheme. (Perhaps instead of a [tunnels] section, we would have a
[tunnel-scheme-FOO] section for scheme foo.) Then the environment
variable, the default command, and the server path for each scheme could
be specified independently. And it makes some sense for the server path
to be scheme-dependent, since it's an implementation detail getting
exposed as part of the tunneling "protocol."

  * But maybe it would be even nicer if the tunnel agent command could
specify the entire command line (instead of "ssh", it would be something
like "ssh -h %{HOST} svnserve -t").

  * But the most obvious implementation of that kind of parameterization
introduces quoting issues, unless we choose to ignore them. And by the
way, isn't it icky that apr_tokenize_to_argv() doesn't cooperate with
backslash-separated pathnames on Windows?

  * And if we have a parameterized command line, wouldn't it be nice to
be able to make the --username option work? (Or the "username@hostname"
URL syntax, or both.) But that requires more complex parameterization,
since you want to pass "-u username" if a username was specified, and
nothing if not.

  * This is all very complicated; maybe I'll play video games instead.

So, clearly, the best is becoming the enemy of the good inside my head;
I'm afraid of implementing hackish, short-term solutions because we'll
have to support them forever. It really seems simplest to mandate that
people set up your path correctly on the server. Unfortunately, I've
heard (though I haven't verified) that modern openssh makes that
impossible for some users who don't have root access, by disabling
.ssh/environment by default and bypassing .profile when a command line
is specified.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun Aug 31 23:54:53 2003

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.