Svn notes
Good start for basic subversion info is at https://help.ubuntu.com/community/Subversion
You may also want to read how to add a group or user to a group.
Contents
SVN client (GUIs)
Here is the list of my favorite clients for SVN
- Rapidsvn for version control and meld for comparing files
sudo apt-get install rapidsvn meld
- RabbitVCS - inspired by TortoiseSvn, but for Linux
Creating a basic SVN repository
Decide where your repository will be. Private could be under your home, public probably be somewhere else, e.g. at /var/lib/svn/ourproject/. This example creates a repository in /home/svn/myproject/.
sudo mkdir /home/svn cd /home/svn sudo mkdir myproject sudo svnadmin create /home/svn/myproject cd /home/svn sudo chown -R www-data:subversion myproject sudo chmod -R g+rws myproject
Global ignore
- Where to set the pattern for files to be ignored:
You can modify /etc/subversion/config like this
[miscellany] global-ignores = *.class *.o tmp
- How to use a different username for a svn client (for example, rapidsvn)
SVN_SSH='ssh -l username' rapidsvn
Single unix account, multiple users access with public key authorization
Here is a description on how to set up svn on a single unix account and using private-public key authorization for multiple users.
In short: edit .ssh/authorized_keys file by adding lines as follows:
Consider
ssh-rsa AAAABlotsmoregookhere= address@example.com
as "TYPE KEY COMMENT". Then add the following lines, one prer user:
command="/path/to/svnserve -t -r /repository/root --tunnel-user=alice",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty TYPE1 KEY1 COMMENT1 command="/path/to/svnserve -t -r /repository/root --tunnel-user=bob",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty TYPE2 KEY2 COMMENT2
Now you can have users authenticating the svn access with their private/public keys, using a single svn/unix account.
If you do not know how to generate the keys, here is how: Ssh_with_a_private-public_key