svn+ssh://host/some/path/here runs 'ssh host svnserve -t' and the path
is passed within the ra_svn protocol.  Next time please don't make me
have to reverse engineer a shell script in order to answer such a simple
question :)

Matthew Beals wrote on Fri, Sep 09, 2011 at 21:13:01 -0400:
> I have two sets of repos setup... common repos and user repos.  On the 
> machine acting as the svn host, I have the common repos stored in /repos 
> while the user repos are in /home/<username>/.repos/
> 
> I'm attempting to simplify svn+ssh access such that:
> 
> svn+ssh://<server>/Code/some_project_repo        serves up 
> /repos/Code/some_project_repo
> svn+ssh://<server>/<username>/some_project_repo  serves up 
> /home/<username>/.repos/some_project_repo
> 
> I took the example of writing a shell script in /usr/local/bin that sets the 
> umask and calls svnserve and modified it to include this path tinkering.  
> Here is that script:
> 
> ##############################################
> #!/bin/bash
> 
> umask 002
> 
> PATH="$@"
> ROOT="/repos"
> USER=`echo $PATH | /bin/sed "s/^\/\([a-z]*\)\/.*/\1/"`
> PATTERN="^$USER:"
> 
> if  `/usr/bin/ypcat passwd | /bin/egrep -q $PATTERN` ; then
>   ROOT="/home/$USER/.repos"
>   PATTERN="s/\/$USER//"
>   PATH=`echo $PATH | /bin/sed $PATTERN`
> fi
> 
> exec /usr/bin/svnserve "$PATH" -r "$ROOT"
> #################################################################
> 
> It just compares the first directory passed in against the users in the NIS 
> domain and if it finds a match, builds a new Path and root path to the repos. 
>  It works just fine on the command line when I pass it paths and echo back 
> out the parts, but when I attempt to actually run it (by accessing a repo 
> with svn+ssh), $PATH does not get set to the path being passed in... it is 
> just set to '-t'.  However, when I try to access a common repo (where PATH is 
> left unadulterated), it serves up the repo just fine.  Is the path being 
> passed encoded somehow?  Is there are way to access it?
> 
> thanks,
> Matt
> 
> ----------------------------------------
> Matthew Beals
> Michigan Technological University
> Department of Atmospheric Sciences
> 1400 Townsend Drive
> B019a Fisher Hall
> Houghton, MI 49931
> mjbe...@mtu.edu

Reply via email to