Wytheme 2020-03-23
SVN的全称是Subversion,即版本控制系统。它是最流行的一个开放源代码的版本控制系统。作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中心资料档案库(Repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括程序源码。
SVN采用客户端/服务器体系,项目的各种版本都存储在服务器上,程序开发人员首先将从服务器上获得一份项目的最新版本,并将其复制到本机,然后在此基础上,每个开发人员可以在自己的客户端进行独立的开发工作,并且可以随时将新代码提交给服务器。当然也可以通过更新操作获取服务器上的最新代码,从而保持与其他开发者所使用版本的一致性。
SVN的客户端有两类,一类是基于Web的WebSVN等,另一类是以Tortoise SVN为代表的客户端软件。前者需要Web服务器的支持,后者需要用户在本地安装客户端,两种都有免费的开源软件供使用。SVN存储版本数据也两种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
Subversion使用“偶数/奇数”版次模式。偶数编号的小数点版次(1.0、1.2等)被认为是稳定的版次。这样的版次只针对问题的修正才会变动,不会增加新功能,而且用户会期待使用的软件没问题。相反地,奇数编号的小数点版次(1.1、1.3等)是开发(development)版本。在这样的版本中会增加新功能,它们倾向于快速的变更与变革,且有可能会有使得数据遗失的缺陷或问题。如果稳定性与数据保存性对你而言是重要的,则你应该使用偶数编号的版次。只有在它具有一个重要及必须要有的功能而且你愿意承担风险时,才使用奇数编号的版次。
yum install subversion -y
(此仅为目录,为后面创建版本库提供存放位置)
mkdir /var/svn/svnrepos
svnadmin create /var/svn/svnrepos/java #java版本库名称,可自定义
cd /var/svn/svnrepos/java
cd /var/svn/svnrepos/java/conf
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
vi authz
zhangsan = rw
rw表示赋予此账号可读写的权限,请注意[]中的斜杠,一定是反斜杠,有些教程说,需添加版本库名称在括号内,我直接建议就这写,这样写允许访问的权限更大,避免一些错误
vim psswd
zhangsan=123456
vim svnserve.conf
文件内容,都被注释掉的,我们只需要去掉4条指定内容前注释即可,如下:
svnserve -d -r /var/svn/svnrepos
ps -aux | grep svn
svn://ip地址:3690/xxxx
pub_svnserve.conf的 pub_authz.conf的配置文件有非法字符的原因引起,需要查找pub_authz.conf提的非法内容比如多余的空格删除或直接将pub_authz.conf