【SVN】搭建一个代码版本控制器(SVN)

目录

前言

一、SVN是什么?

二、使用步骤

1.CentOS安装SVN

2.服务器建立目录

3.启动服务

4.查看运行的端口

5.创建代码库

6.修改代码库属性(svnserve.conf)

6.指定权限(authz)

7.指定用户登录密码(passwd)

8.电脑客户端等访问版本库


前言

        作为一个开发人员,把功能完成后,交给甲方,甲方觉得你这个页面太简单了,需要修改,然后你加班加点大改一通,页面变的非常丰富,甲方一看,你这个太花里胡哨了,不行,我们还是用第一版吧。现在代码被你全改了,你需要找回第一版的程序,这时你又得加班加点把修改的代码改回去。

        但是如果你有一个代码版本的控制器,每改一个功能就作为一个版本提交一次,那么不管甲方是要回到哪一个版本你都可以立刻回到那个版本。

        基本上,现在所有公司对于内部的文档或者代码都会建立一个历史版本控制器,所有的修改记录都会保留在服务器的代码库里面,目前市场上常见的代码版本控制器有SVN、GIT。当然SVN不仅仅局限于建立一个版本控制器,还可以让项目组人员进行协同开发,比如A开发一个上传文件功能,B开发一个下载文件功能,二者可以同时开发,然后分别上传到版本库里面互不影响。但如果二者对同一个文件同一行进行修改了,就会产生冲突了,后面解释如何修改解决冲突。


一、SVN是什么?

        Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

        SVN首先需要一个代码仓库,拥有代码仓库之后你就可以在任何可以访问到的地方建立一个本地副本。比如你在各大厂商上的云服务器上建立一个代码库,你购买云服务之后,厂商都会给你一个公网IP,你可以在任何一个有网络的地方通过这个公网IP访问你购买的云服务器,也就能获取到你的代码仓库里面的代码。但如果你是在局域网服务器上建立的代码仓库,那你只能先连接到局域之后再获取代码仓库。

         去年正好碰上阿里云做推广活动,然后去薅了一次羊毛,靠领取新人福利,购买1年的共享型S6才花了不到200块大洋,新人第一年领取福利购买服务器是非常划算的,比自己搭建本地服务器会便宜很多的,就按电费来算,本地服务器1天1度电,1度电1元,365天也是需要365元的,这还没有算宽带费等,所以新人就不要纠结这200、300块,大胆去薅羊毛吧,当然还有腾讯云的羊毛也可以去薅一薅--新春618特惠活动


二、使用步骤

1.CentOS安装SVN

1)查看是否安装svn

rpm -aq subversion

2)命令安装svn

yum -y install subversion

2.服务器建立目录

mkdir svn
cd svn
mkdir svndata

3.启动服务

 svnserve -d -r /home/svn/svndata/

-d 参数让 svnserve 运行在后台。

-r 参数限定了数据仓库,在网络上可以访问的地址,指定文件系统的根位置(版本库的根目录)

4.查看运行的端口

netstat -lntup 

一般默认都是3690

 这个端口记得在防火墙上放行,不然外网无法访问。

 如果发现SVN出问题了,需要停止服务的话,首先要查询服务是哪个PID,修改红色部分为对应的SVN服务的PID

ps -ef|grep svn

killall -9 377686

5.创建代码库

svnadmin create /home/svn/svndata/test

6.修改代码库属性(svnserve.conf)

cd /home/svn/svndata/test/

cd conf/

vi svnserve.conf

常用配置就访问权限、认证、密码等,一般红色部分的不改路径,只删除前面的#号

anon-access = none

auth-access = write

password-db = /home/svn/svndata/test/conf/passwd

authz-db = /home/svn/svndata/test/conf/authz

  • anon-access: 控制authz没有添加的用户访问版本库的权限,取值范围为 "write"、"read" 和 "none"。 即 "write" 为可读可写,"read" 为只读,"none" 表示无访问权限,默认值:read。

  • auth-access: 控制authz中添加过的用户访问版本库的权限。取值范围为 "write"、"read" 和 "none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限,默认值:write。

  • authz-db: 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径,默认值:authz。

  • authz-db: 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径,默认值:authz。

  • passwd-db:指定auth添加用户访问版本库的验证密码文件名。

6.指定权限(authz)

[groups]

用来配置可访问的用户,配置格式如下

<用户组> = <用户列表>

不指定访问路径的话,那就可以对所有路径进行控制,如果需要针对不同用户组配置不同的访问路径,比如/foo/bar,

[/foo/bar]
xanadw = rw

配置格式

[<版本库名>:<路径>]

[test:/]
xanadw = rw

auth常用配置,根目录权限是用:/

[groups]
xanadw = xanadw

[test:/]
xanadw = rw

7.指定用户登录密码(passwd)

 前面是用户,后面是密码。

8.电脑客户端等访问版本库

本地访问的话,需要下载TortoiseSVN软件,然后建立一个目录,按下鼠标右键

 输入url,//后面是公网IP

 

1)用户认证完毕之后,就可以使用SVN检出导出版本库了。

2)检出之后就可以提交、上传、更新等操作了。

如果新加入了一个文件,必须使用右键,svn--加入操作才能将这个文件加入到版本控制里面,等你提交的时候就会显示这个文件了。

3) 提交操作

需要提交修改到版本库里面,也只需要在文件夹空白处右键,点击SVN提交就行。

然后提交的时候可以在下面写一些注释,填写修改内容,方便以后还原。

这样子就提交完成了。

版本浏览器也能查看到你的文件了。

  如果文件有修改会显示!图标,与服务器版本库一致则是绿勾。

3)还原文件

如果某个文件修改错误,只需要右键点击显示日志。

 当前所处的版本会显示加粗加黑。然后选中想还原的版本,点击复原到此版本就可以了。

 请注意,这个还原操作只会更改你在服务器上提交的更改,你本地修改的内容点击还原操作是不会被还原的。

4)清理(还原本地修改,慎重使用此功能,清理前可提交或者本地保存一个副本

本地所有未提交的修改会被清空。


 总结

        本文主要介绍了如何利用云服务器搭建一个代码版本控制器,使用云服务器的一个好处是你不管用的是谁的电脑,只要有网,然后记住你的用户名和密码,你随时可拷贝一个代码到你的本地电脑。现在大部分公司也都在用SVN这个软件,所以简单介绍了这个软件的使用,如果文件产生了冲突,则必须手动修改冲突的地方,再进行提交。对于高校里面实验室开发项目的话还是挺好使用的,因为经常换方向,可能有时不记得之前写过的代码了,所以用SVN记录你所有的修改,防止找不到代码。

猜你喜欢

转载自blog.csdn.net/xanadw/article/details/126075521