当前位置: 首页 > 科技观察

Linux下SVN的安装与配置

时间:2023-03-18 17:33:43 科技观察

本文转载自微信公众号《Linux开发那些事儿》,作者LinuxThings。转载本文请联系Linux开发那些事儿公众号。SVN是一个免费开源的版本管理系统,可以按时间顺序管理文件、目录及其修改。如今,广泛应用于互联网公司的项目版本管理。工作原理其工作原理如下图所示。它由一个SVN服务器和多个SVN客户端组成。数据统一存储在SVN服务器上。客户端从服务器到本地检出(checkout)指定路径上的版本文件,并进行修改。然后提交(commit)到服务器。当其他客户端再次签出或更新时,可以得到上一个客户端提交的修改。这样多个客户端就可以工作,互不干扰,实现多人协作SVN已经是一个非常成熟的工具,可以快速实现项目版本管理。它被许多中小型团队使用。下面介绍SVN服务器的安装和配置。安装yuminstall-ysubversion后,执行svn--version查看是否安装成功,如果有类似下面的输出,则表示安装成功,参见http://subversion.apache.org/Thefollowingrepositoryaccess(RA)modulesareavailable:*ra_neon:ModuleforaccessingarepositoryviaWebDAVprotocolusingNeon.-handles'http'scheme-handles'https'scheme*ra_svn:Moduleforaccessingarepositoryusingthesvnnetworkprotocol.-withCyrusSASLauthentication-handles'svn'scheme*ra_local:Moduleforaccessingarepositoryonlocaldisk.-handles'文件'默认方案21#chost目录svnserve安装目录svnserve默认安装在/usr/bin目录下,可以通过whichsvnserve命令查看[root@ecs-centos-7~]#whichsvnserve/usr/bin/svnserve仓库地址svnserve默认仓库地址为/var/svn,通过/etc/sysconfig/svnserve配置文件可以修改[root@ecs-centos-7~]#cat/etc/sysconfig/svnserve#OPTIONSusedtopasscommand-lineargumentstosvnserve.##Specifytherepositorylocationin-rparameter:OPTIONS="-r/var/svn"svnserveportsvnserve启动后默认使用3690端口[root@ecs-centos-7test_a]#netstat-anpt|grepsvnservetcp000.0.0.0:36900.0.0.0:*LISTEN28347/svnserve配置创建一个warehouse安装完成后,使用svnadmincreatewarehousedirectory创建一个新的仓库我们在/home/tt目录下创建一个名为svn的仓库。以后所有工程文件都放在这个目录下。创建成功后svn目录下有几个子目录[root@ecs-centos-7tt]#svnadmincreate/home/tt/svn[root@ecs-centos-7tt]#lssvn/confdbformathookslocksREADME.txtconf目录是配置的地方文件存放[root@ecs-centos-7tt]#svnadmincreate/home/tt/svn[root@ecs-centos-7tt]#lssvn/confdbformathookslocksREADME.txtauthz是用户权限控制文件passwd是账号密码配置文件svnserve。conf是svnserve服务配置文件配置用户名密码编辑passwd配置文件,添加ta用户名和123456密码,tb用户名和12345密码和tc用户名和123密码[root@ecs-centos-7conf]#vimpasswd###Thisfileisanexamplepasswordfileforsvnserve.###Itsformatissimilartothatofsvnserve.conf.Assshowninthe###examplebelowitcontainonesectionlabeled[users].###Thenameandpasswordforeachuserfollow,oneaccountperline.[users]#yssimilartothofsvnserve.123456tb=12345tc=123配置用户权限为SVN用户ta配置读写权限,为SVN用户tb配置只读权限,为SVN用户tc配置只读权限。上图是配置仓库的根目录访问权限。如果要配置仓库可以在最后添加一个仓库目录,然后在该目录下配置用户访问权限。例如:仓库根目录下有一个目录myproject,用户ta有读写权限,用户tb没有访问权限。用户tc有只读权限,myproject目录权限配置如下[/myproject]ta=rwtc=r*=如上图配置svnserve服务,打开红色选项前的注释框,注意:每个选项前不能有空格anon-access=none#匿名用户不能访问auth-access=write#授权用户可以写入password-db=passwd#用户密码验证文件authz-db=authz#用户权限验证filerealm=/home/tt/svn#svn仓库目录start,stop,restart修改/etc/sysconfig/svnserve中OPTIONS的值为我们新建仓库的地址[root@ecs-centos-7~]#vim/etc/sysconfig/svnserve#OPTIONSusedtopasscommand-lineargumentstosvnserve.##Specifytherepositorylocationin-rparameter:OPTIONS="-r/home/tt/svn"svn安装完成后,默认已经添加到systemctl中,使用以下命令启动、停止和重启[root@ecs-centos-7~]#systemctlstartsvnserve[root@ecs-centos-7~]#systemctlstopsvnserve[root@ecs-centos-7~]#在实际部署systemctlrestartsvnserve时,为了重启机器不影响客户端的使用,通常会设置svnserve开机启动[root@ecs-centos-7~]#systemctlenablesvnserveCreatedsymlinkfrom/etc/systemd/system/多用户.target。想要/svnserve.serviceto/usr/lib/systemd/system/svnserve.service。客户端签出并配置用户密码和访问权限后,重启svnserve新建test_a目录,进入该目录,执行svncosvn://192.168.0.9--usernameta--password123456命令即可签出svn仓库中的文件和目录[root@ecs-centos-7tt]#mkdirtest_a[root@ecs-centos-7tt]#cdtest_a/[root@ecs-centos-7test_a]#svncosvn://192.168.0.9--usernameta--password123456[root@ecs-centos-7test_a]#svninfopath:.workingcopyrootdirectory:/home/tt/test_aURL:svn://192.168.0.9versionRepositoryRoot:svn://192.168.0.9RepositoryUUID:c9730d20-968c-41c0-a224-4c6a967f8330版本:1节点类型:目录调度:正常最后修改作者:ta最后修改版本:1最后修改时间:2020-12-0423:48:11+0800(五、202-12-04)适用场景每个工具都有它的适用场景,SVN也不例外。当需要记录每个文件的修改时间时,查看以下和时间变化的日志,可以回溯回滚到修改的任意时间点的版本,多人协作开发,跟踪谁进行了修改。非常适合使用SVN。对于一些比较大的文件或者以后不会修改的文件,使用SVN作为文件传输的中转站。这些不适合使用SVN。例如:从一个SVN客户端上传一个电影到SVN服务器上,然后在另一个SVN客户端更新电影文件。这是对SVN工具的误用。上述文件的同步是由一个特殊的工具(rsync)来处理的。小结本章介绍了SVN服务器的工作原理、安装配置和使用场景。关于SVN的更多信息,请参考官方文档。对于中小型创业团队,在事多、人少、时间紧的情况下,SVN这种具有安装简单、使用方便、上手容易(特别是非技术人员,可以搞定)的特点从一些解释开始)非常好。选择。