<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>philippewang.info</title>
    <link>http://philippewang.info/</link>
    <description>
SVN+SSH://MULTI/VIRTUAL/USERS/BUT/A/SINGLE/REAL/ACCOUNT
</description>
    <language>fr</language>
    <generator>BASHGXD Another Super HTML Generator XD</generator>
    <item>
    <guid>http://philippewang.info/cs.tiny_svn_guide.xml</guid>
      <title>
SVN+SSH://MULTI/VIRTUAL/USERS/BUT/A/SINGLE/REAL/ACCOUNT
</title>
      <link>http://philippewang.info/cs.tiny_svn_guide.htm</link>
      <pubDate>Mon, 26 Jan 2009 23:02:29 +0100</pubDate>
      <description><![CDATA[
<!-- BODY - N LINES -->
<div>
    <pre>
<span># </span><span>====================-=====-====================
</span><span># </span><span>==================== HOWTO ====================
</span><span># </span><span>====================-=====-====================
</span><span>#          </span><span>&gt;&gt;&gt;      SVN VIA SSH     &lt;&lt;&lt;
</span><span># </span><span>====================-=====-====================
</span><span>#  </span><span>MULTI VIRTUAL USERS BUT A SINGLE REAL ACCOUNT
</span><span># </span><span>====================-=====-====================
</span><span># </span><span>* this technique requires the use of ssh keys *
</span><span># </span><span>====================-=====-====================
</span>
<span># </span><span>Create a repository
</span>
       svnadmin create <span>"${PATH_TO_REPOSITORY}"</span>

<span># </span><span>Add a *virtual* user
</span>  <span># </span><span>A virtual user is a user that has no real account,
</span>  <span># </span><span>but only a svn account.
</span>
       <span>echo</span> <span>"command=\"svnserve -t --tunnel-user=${USERNAME}\",\
             no-port-forwarding,no-agent-forwarding,no-X11-forwarding,\
             no-pty ${KEYTYPE} ${KEY} ${COMMENT}"</span> <span>\</span>
           &gt;&gt; <span>"${HOME}"</span>/.ssh/authorized_keys
<!--       <span># </span><span>(then, delete extra spaces...)</span>-->
  <span># </span><span>The virtual user shall not be allowed to access to anything
</span>  <span># </span><span>else on the real account. 
</span>
       
<span># </span><span>Checkout
</span>
       svn co svn+ssh://${<span>HOST</span>}${<span>ABSOLUTE_PATH_TO_REPOSITORY</span>}

           <span># </span><span>(there must *not* be any extra slashes)
</span>
<span># </span><span>Commit
</span>  <span># </span><span>in the local checked out repository, do
</span>      svn ci -m <span>"your message about changes"</span>

<span># </span><span>Update
</span>  <span># </span><span>in the local checked out repository, do
</span>      svn up


<span># </span><span>====================-=====-====================
</span><span># </span><span>============ ! SET THE VARIABLES ! ============
</span><span># </span><span>====================-=====-====================
</span>
${<span>USERNAME</span>} : the username of the *virtual* user 
  <span># </span><span>(it should be different from the login of the real account...)
</span>
${<span>PATH_TO_REPOSITORY</span>} : absolute or relative path to repository
  <span># </span><span>(don't put spaces into paths, unless you want to play with them)
</span>
${<span>ABSOLUTE_PATH_TO_REPOSITORY</span>} : absolute path to repository


${<span>HOST</span>} : login@host or host if login is implicit


${<span>KEYTYPE</span>} : the ssh key type, for example : ssh-rsa

${<span>KEY</span>} : the ssh key

${<span>COMMENT</span>} : a comment

A ${<span>KEYTYPE</span>} ${<span>KEY</span>} ${<span>COMMENT}</span> example : 

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwIjFkM7D\
FRum9tcs1nzoMN6rUPdFeOP6ibolwb5UTirMHMMo8qzx\
jn5WdIwVzyxYRz4dDXCHcjje7Fsx4gp5mGBHpGDT9Pbn\
3E7+L4yD4llglwYj0P6nSm1PAx1C34ZU500Z0w0ebAMG\
HgNs69Tcz4zFNky2S0cZrqqMP+icOyX1bi+aA9TXE+tw\
qORu6WbEid8xoWsngo+YNFdyLDZnOMsAxJJF93R21kSZ\
hJ905rN/4kyIM6T27eABRnfBfM6dUJFclmRRoB2isydR\
L1B6dppvUY+Vuq0928hKipNZqfHz+V3v/DC8W4p+aKJm\
9guyBgKvs/9LYhlFmMIWU94Gzw== plop@host


</pre>

</div>
      ]]></description>
    </item>
  </channel>
</rss>

