SVN的搭建和使用

简介

Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。

这些数据放置在一个中央资料档案库(repository) 中。

这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。

这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

SVN 的一些概念

  1. repository(源代码库):源代码统一存放的地方
  2. Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
  3. Commit(提交):当你已经修改了代码,你就需要Commit到repository
  4. Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository 上的源代码同步,你手上的代码就会有最新的变更

日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) —>作出自己的修改并调试成功 —> Commit(大家就可以看到你的修改了) 。

如果两个程序员同时修改了同一个文件呢, SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。

如果是同一行,SVN会提示文件Confict, 冲突,需要手动确认。

安装

两种方法安装

第一种

下载阿里云SVN版本控制镜像。

购买完成之后,登录”ECS 管理控制台”,在左边导航栏里,单击”实例”,进入 ECS 实例列表页,选择所购 ECS 实例所在的地域,并找到所购 ECS 实例,在”IP 地址”列获取该实例的公网 IP 地址。

第二种

手动安装

1.环境

centos7

2.安装svn

yum install subversion 

查看版本

svnserve --version


image


3、创建版本库

先建目录

mkdir /var/svn

创建版本库

cd /var/svn
svnadmin create /var/svn/svnrepos
cd svnrepos会看到自动生成的版本库文件:
conf  db  format  hooks  locks  README.txt


image

subversion目录说明

db目录:就是所有版本控制的数据存放文件。

hooks目录:放置hook脚本文件的目录。

locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。

format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。

conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。

进入conf目录(该svn版本库配置文件)cd conf/

authz文件是权限控制文件

passwd是帐号密码文件

svnserve.conf SVN服务配置文件

设置帐号密码 vi passwd

在[users]块中添加用户和密码,格式:帐号=密码,如suzhan=redhat

image

设置权限 vi authz

在末尾添加如下代码:

[/]

suzhan=rw (r:读,w:写)

image


修改svnserve.conf文件 vi svnserve.conf

打开下面的几个注释:

anon-access = read #匿名用户可读

auth-access = write #授权用户可写

password-db = passwd #使用哪个文件作为账号文件

authz-db = authz #使用哪个文件作为权限文件

realm = /var/svn/svnrepos # 认证空间名,版本库所在目录


image


启动svn版本库

 svnserve -d -r /var/svn/svnrepos

停止SVN命令

 killall svnserve

用ps -ef |grep svn 查看服务是否开启。


image


在windows上测试

我踩过的坑

如何解决svn Authorization failed错误

出现这种问题肯定是SVN服务器出现了问题,需要修改其三个配置文件: 
1、svnserve.conf: 
[general] 
anon-access = read 
auth-access = write 
password-db = passwd 
authz-db = authz

2、passwd: 
[users] 
admin=123

3、authz: 
[groups] 
[/] 
admin= rw

出现authorization failed异常,一般都是authz文件或者svnserve.conf里,用户组或者用户权限没有配置好,只要设置[/]就可以,代表根目录下所有的资源,如果要限定资源,可以加上 子目录即可。


如果没有TortoiseSVN客户端,可以去这里 下载:tortoisesvn.net/downloads.html, 根据从SVN服务器下载项目自己的实际情况下载对应版本。

在你的本地项目文件夹或随便一个地方,右键空白处弹出菜单,选择 SVN。


image


然后,通过从SVN服务端获取的资源库URL+具体的项目文件夹名下载相应项目,并可以知道下载项目的保存位置。


image
image

第一次登陆需要输入密码,一切以passwd文件里面的账户密码为主!

image


对项目的修改与提交

1:把项目下载到本机后,其实就是一个普通的项目文件而已,你可以在里面添加文件、修改文件、删除文件等等。

2:提交修改 在项目文件空白处右键,选择 SVN提交 。


image


然后,输入 本次提交的版本更新信息(所作修改的注释)、勾选要提交的操作内容,点击 确定,即可把本机项目提交到SVN服务器资源库,覆盖掉资源库项目从而实现更新。

如果发生提交冲突,即两人都提交修改,后提交者由于版本落后会提交失败。这时可以先把自己的项目备份,然后从服务端下载最新的项目,再把自己的项目覆盖到本地项目文件夹,最后SVN提交即可成功提交。

我刚刚删掉了一个文件,这里就会显示:


image


3:获取更新

如果别人修改了SVN服务端资源库上的项目,你想下载最新的项目,则在 本机项目文件空白处单击鼠标右键,选择 SVN更新 ,即可自动完成下载,并会提示所作的更新有哪些。

注意:在原项目文件夹内选择SVN更新的话,会自动覆盖掉原有内容。建议:先备份,再更新,防止自己本来的项目内容丢失。


image


4.svn提供历史还原功能

首先打开一个文件夹,右键检出数据,


image

然后删掉数据。


image


这是如果不点提交的话,可以直接点鼠标右键还原即可。

image
image


如果点击提交了,那么系统库里的数据也会得到同步,系统也会把它存的数据删掉。

image


这是点击svn还原是没有用的。

image


这时需要查看日志,看看是删掉了什么东西。

image


然后把删掉的文件保存版本到删掉的位置,

image


打开原文件夹


image


然后在点击提交,系统库里的数据就和这个文件同步了。

原文链接

如果本博客使您解决了一些迷惑或者使您学到了一些东西请您动动小手点个赞!!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值