SVN简介
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。
说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:
开始新一天的工作:
1、从服务器下载项目组最新代码。
2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。
3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
ubuntu系统安装并配置SVN
1、安装SVN,在终端下输入:
apt-get install subversion
OK,linux的优越性,一句话安装完成,这里我最初遇到了些问题,无法找到软件包,只需要百度一下,换个软件源或更新软件源即可。
2、建立svn仓库
1). 建立svn目录:
mkdir /home/svn
2). 建立仓库
cd /home/svn 回车
mkdir repos 回车
svnadmin create /home/svn/repos 回车
此时便完成了仓库的创建
3、配置SVN
在目录$repos/conf下,我们可以看到一些配置文件:
我们主要需要修改这三个文件: svnserve.conf、passwd、authz
1)在svnserve.conf中,
anon-access:
首先去掉前面的#。代表匿名用户的权限,可以为read,write和none,默认值read。如果不允许匿名用户访问:anon-access = none。
auth-access:
首先去掉前面的#,代表认证用户的权限,可以为read,write和none,默认值write。
password-db:密码数据库的路径,去掉前边的#。
authz-db:认证规则库的路径,去掉前边的#。
2)在passwd中,修改为
[users]
root =123
hfkj=12345678
test1=test1
test2= test2
3)在authz中,修改为
[groups] admin=root,hfkj,test1,test2 [repos:/] @admin=rw
配置完毕!
4、启动svn服务
1)启动SVN
sudo svnserve -d -r /home/svn
2)查看是否启动
sudo netstat -antp |grep svnserve
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 28967/svnserve
5、注意:一定要给仓库文件夹设置权限为777(可读可写),不然在机器连接SVN后无法取得上传权限,设置权限的方式有很多种,我用sudo nautilus打开最高权限图像界面设置的。
SVN的使用
在实验室的ubuntu服务器安装好SVN后,我们就可以在其他机器往服务器上传、更新、下载代码了。有两种使用方式,一种是安装图形界面客户端TortoiseSVN,另一种是eclipse集成SVN。
TortoiseSVN的使用:
1)在F盘下建一个testSVN文件夹
2)右键该文件夹,选择SVN checkout
3)填入SVN的url:svn://159.226.181.35/repos
,并输入自己账户的用户名和密码,点击OK后,该文件夹上有了绿色对勾,此时这个文件夹就可以作为和服务器进行上传下载的交互文件夹了。
4)上传:
4.1)在testSVN文件夹下新建一个test.txt文件,此时这个文件上有蓝色的问号,代表还未收录到SVN。
4.2)右键该文件->“TortoiseSVN”—> “Add”,此时这个文件上有蓝色的加号,代表已经收录到本地SVN中,但还未上传到服务器。
4.3)再次右键该文件->"SVN COMMIT",在弹出的对话框填写该上传的版本信息,并点击OK,输入用户名和密码后,完成到服务器的上传!
5)修改
打开刚才新建的test.txt文件,写几个字,保存后发现文件上有个红色叹号,说明该文件已被修改尚未提交。此时只右键该文件->“SVN commit”即可。
6)查看服务器上的文件
开始–TortoiseSVN–TortoiseSVN Repository Browser,输入用户名和密码,即可查看到我们提交到服务器上的代码了!