一、安装与卸载SVN
1、安装SVN,安装命令“sudo apt install subversion”,安装完毕,输入“svnserve --version”查看是否安装成功。
2、卸载SVN命令“sudo apt-get remove --purge subversion”,卸载过程中询问Do you want to continue? [Y/n],输入“Y”完成卸载
二、配置SVN
1、创建SVN根目录,创建根目录命令 “sudo mkdir /usr/svn”
2、创建SVN仓库目录,在SVN根目录下创建新文件夹作为仓库目录,命令“sudo mkdir /usr/svn/repository”
3、配置SVN仓库,命令“sudo svnadmin create /usr/svn/repository”,创建成功后,“ls /usr/svn/repository”查看仓库目录,会出现如下文件或目录
conf db format hooks locks README.txt
4、配置SVN(配置文件所有的行必须顶格,前面不能留空格),进入“/usr/svn/repository/conf”目录,conf目录下有文件(authz、hooks-env.tmpl、passwd、svnserve.conf)
5、配置用户名,“sudo vi authz”对文件进行编辑。
在authz中的[groups]下面,配置了admin组,里面有1个用户w001; developer组,里面有2个用户w002,test。
[/]表示所有的目录,
@后面跟的是组名,这里是@admin等于rw,表示读写权限都有。
[/cam]表示SVN根目录下的cam目录,
@后面跟的是组名,这里是@developer等于rw,表示读写权限都有。
[groups]
admin = w001
developer = w002,test
[/]
@admin = rw
[/cam]
@developer = rw
6、配置密码,“sudo vi passwd”对passwd文件进行编辑
7、配置权限,“sudo vi svnserve.conf”对svnserve.conf文件进行编辑,将
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
前面的“#”注释符去掉。
anon-access = none 表示匿名用户没有任何权限
auth-access = write 表示认证用户有写权限
password-db = passwd 表示使用用户名密码
authz-db = authz 表示使用认证用户
三、SVN服务启动
1、启动svn服务使用默认端口(3690)或指定自定义端口
svnserve -d -r /usr/svn/repository
或
svnserve -d -r /usr/svn/repository --listen-port 9000
-d:表示在后台运行
-r:指定服务器的根目录
2、输入命令“netstat -ntlp”,查看端口,是否启动成功
3、开启服务自启动
编辑rc.loacl脚本
Ubuntu开机之后会执行/etc/rc.local文件,我们可以直接在/etc/rc.local中添加启动脚本,要添加到语句exit 0前面才行。
如:
sudo vi /etc/rc.local
然后在 exit 0 前面添加启动命令
svnserve -d -r /usr/svn/repository --listen-port 9000
4、在防火墙中开放SVN端口
sudo ufw allow 3690
或
sudo ufw allow 9000
开启/关闭防火墙 (默认设置是’disable’)
sudo ufw enable|disable
查看防火墙状态
sudo ufw status
四、SVN操作命令
svn checkout svn://192.168.1.209:9000/battery_ipcam
或简写为:
svn co svn://192.168.1.209:9000/battery_ipcam
取出指定版本,如取出版本10:
svn checkout --revision 10 svn://....
svn递归添加目录下所有文件
svn add . --no-ignore --force
往版本库中添加新的文件
svn add *.c (添加当前目录下所有的c文件)
提交修改
svn commit -m "note"
svn commit -m "commiting changes" --username testuser --password testpwd
删除文件
svn delete svn://192.168.1.209/test.c -m “delete test file”
显示提交日志信息:
svn log
显示库中的最新信息:
svn log --revision HEAD
svn help查看svn提供的命令
如果哪个命令不会使用可以通过svn help命令的形式来查看帮助信息,例如:svn help chechout