RE: svn+ssh svnserve path issue workaround = solution?
From: Miller, Eric <Eric.Miller_at_amd.com>
Date: 2007-02-12 17:20:31 CET
This is what we currently do to resolve this:
In your config file:
svnssh is a wrapper:
/path/to/ssh $1 /path/to/sshsvnserve -t
sshsvnserve is also a wrapper:
/path/to/sshsvnserve is the path on the remote machine to your svnserve executable (or wrapper).
The only major issue we've had is that the config-dir must be specified on the command line (we can't modify the ssh install tree directly). You can get around this by placing the config file in ~/.subversion or making a wrapper around the svn executable.
This is closely related to the workaround specified by the author of the article you linked, but doesn't tie svn down to a particular machine.
That workaround was implemented two and a half years ago and still works today. I didn't find that particular workaround in past subversion user posts or the subversion FAQ.
---------- Forwarded message ----------
I have searched and found many posts regarding the issue of svn+ssh and the path to svnserve on the server. The root of the issue seems to be the non-configurable and externally dependent way the subversion invokes svnserve through tunnel. The responses to this issue suggest to either configure the server where the subversion repository resides or configure the underlying tunnel used by subversion to (using a likely poor analogy) ensure proper reception of the subversion client's "hail mary" pass of the svnserve ball sent over the network. To have the server/tunnel configurations altered for subversion, not only to ensure that the subversions client's pass hits a svnserve binary somewhere, but hits the correct one.
Workarounds I have found include the following:
1- symlink to svnserve from a path on the server that SSH has in it
None of the above we can do in our situation. #1 and #2 are not permitted by the group responsible for the servers. This is understandable as standardized images are distributed throughout the company. #3 has been disabled in the ssh compile for one unmovable reason or another. #4 is what we are doing now, however we are moving to Kerberos and we have been told the authorize_key files will be removed soon (also user accounts have no home directories on the server hosting svn repos).
Someone recently opened an issue around this with a suggestion for a command line option to specify svnserve path. If it was persistent to the workarea, that would be fine (not needing to specify that option on svn commands in that workarea once created)
Someone also posted a patch for a client environment variable to optional set a path to the svnserve to use. That would work also.
A third option might be to use the .subversion/config file. Maybe something to configure a custom path to svnserve on a per host server basis or even on a host server and svn repo path basis.
I realize that this was an important issue affecting many folks it would have been addressed by now. So if anything, this post can serve as identifying another user that would like to have the path to svnserve binary the subversion client uses, to be optionally configurable on the client side.
In the mean time, does anyone have any thoughts on the workaround (sort of "gaming" the system) to this svnserve path issue posed on the Perl site below. I tested it briefly and it seems to work.
This is an archived mail posted to the Subversion Dev mailing list.