1、安装ssh sudo apt-get install ssh
2、安装subversion sudo apt-get install subversion
3、为参与项目开发的成员建立用户帐户 sudo adduser xiao
4、建立名为svn的用户组
sudo addgroup svn
sudo addgroup xiao svn /*把xiao加入组svn*/ 注:这里可以根据不同的权限建立多个用户组,把有相应权限的用户放入相应的组中
5、建立项目文件存储目录
sudo mkdir /usr/local/svn
sudo mkdir /usr/local/svn/trunk
6、创建SVN文件仓库
sudo svnadmin create /usr/local/svn/trunk
7、为组成员赋予相应的权限
sudo chown -R root:svn /usr/local/svn/trunk
sudo chmod -R g+rws /usr/local/svn/trunk /*给svn组赋予读写权限,可以根据需要更改相应权限*/
sudo chmod -R o-rwx /usr/local/svn/trunk /*删除其他无关人员的读、写、执行权限,默认情况下可能其他人有读权限*/
注:有关权限修改的问题可以查看相关linux命令
5.访问权限设置
修改 /home/xiaozhe/svn/mypro/conf目录下: svnserve.conf 、passwd 个文件,行最前端不允许有空格
编辑svnserve.conf文件,把如下面行取消注释,并需要顶格
anon-access = read
auth-access = write
password-db = passwd
编辑passwd 如下: [users] andy = andy
6. 开启svnserve,以SVN根目录开启:
svnserve -d -r /home/xiaozhe/svn
7.检查是否正常启动
$ netstat -ntlp
可以看到有一个端口为3690的地址,表示启动成功
8、为每个成员生成密钥对(以用户xiao为例)
切换为xiao用户登录:su xiao (提示输入xiao的密码)
输入:cd ~/ 输入:whoami,如果登录成功则显示xiao
执行: ssh-keygen -b 1024 -t dsa -N passphrase -f xiaokey
注:其中passphrase为密钥关键字,根据你的需要修改,xiaokey为文件名;
这里使用的是DSA加密,可以改用RSA加密,把其中的“dsa”改为“rsa”就可以了。
这时产生两个文件:xiaokey和xiaokey.pub,前一个为秘密密钥后一个为公开密钥
然后,创建目录
mkdir /home/xiao/.ssh,
把公钥拷贝到/home/xiao/.ssh目录下:
cp xiaokey.pub /home/xiao/.ssh/authorized_keys
注:文件名必须为authorized_keys 退出:exit
9、在windows下安装svn客户端,则需安装“TortoiseSVN”、“Puttygen”和“Pageant”
9.1、下载: http://sourceforge.net/projects/tortoisesvn http://www.chiark.greenend.org.uk/~sgtatham/putty/
9.2、安装:略
9.3、转换私钥格式:
9.3.1、将xiaokey拷贝到windows下,运行Puttygen;
9.3.2、选择菜单conversions->Import Key,
9.3.3、选择文件xiaokey,提示“Enter passphrase for key",输入创建公私钥对示使用的passphrase关键字,
9.3.4、然后选择Parameters为“SSH-2 DSA”(如果公私钥是使用RSA生成,则选择“SSH-2 RSA”),
9.3.5、点击按钮Save private key,
9.3.6、保存文件名为xiaokey.ppk。
9.4、建立TortoiseSVN与Pageant的关联,并将私钥加入Pageant:
9.4.1、鼠标右键选择TortoiseSVN->Settings->Network->SSH client,
输入: C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe;
9.4.2、鼠标右键选择TortoiseSVN->RepoBrowser 输入URL:
svn+ssh://xiao@SvnServiceIP/usr/local/svn/trunk;
9.4.3、运行Pageant,右键点击屏幕右下角的图标-〉Add Key,将私钥文件xiaokey.ppk加入。
注:如果不想缓存ssh密码,则第8、9步不需要,只保留9.4.2, 但每次check out、check in中每进入一个文件夹都要输入两次密码,烦死你:)
//TODO:这样的客户端服务器安全性
ubuntu中操作svn: learn@VMUbuntu1204:~$ mkdir SourceCode
learn@VMUbuntu1204:~$ cd SourceCode/
learn@VMUbuntu1204:~/SourceCode$ ls
learn@VMUbuntu1204:~/SourceCode$ mkdir svnTrunk
learn@VMUbuntu1204:~/SourceCode$ cd svnTrunk/
learn@VMUbuntu1204:~/SourceCode/svnTrunk$ svn co svn://192.168.1.88/trunk A trunk/test.txt 取出版本 1。 learn@VMUbuntu1204:~/SourceCode/svnTrunk$ ls trunk
learn@VMUbuntu1204:~/SourceCode/svnTrunk$ cd trunk
learn@VMUbuntu1204:~/SourceCode/svnTrunk/trunk$ ls test.txt
learn@VMUbuntu1204:~/SourceCode/svnTrunk/trunk$ sudo gedit test.txt
learn@VMUbuntu1204:~/SourceCode/svnTrunk/trunk$ svn commit -m'modified from ubuntu' test.txt
认证领域: <svn://192.168.1.88:3690> f216c773-9e20-4958-9739-440cf67467b4 “learn”的密码: 正在发送 test.txt 传输文件数据 . 提交后的版本为 2。
learn@VMUbuntu1204:~/SourceCode/svnTrunk/trunk$ svn update U
test.txt 更新到版本 3。 learn@VMUbuntu1204:~/SourceCode/svnTrunk/trunk$ cat test.txt
create from win first
modified from ubuntu first