设为首页 收藏本站
查看: 854|回复: 0

[经验分享] SVN安装部署方案

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-11 09:05:20 | 显示全部楼层 |阅读模式
svn介绍

       Subversion(SVN)是一个开源的,跨平台的版本控制系统,由CollabNet公司成立于2000年;Subversion作为新一代的版本管理系统,以其目录版本化、原子提交、版本化的元数据、更加有效的分支和标签等特性,至今已被众多的互联网企业使用来管理网站、论坛的代码文件;Subversion最独特的地方,便是可以通过Apache的扩展模块与Apache的HTTP服务相结合,实现更安全的特性与管理,其次用户还可以通过HTTP协议去访问版本库,还可以通过SSL协议传输加密,保证数据的安全性;Subversion是Apache软件基金会的发展的一个项目,并且也是一个丰富的开发人员和用户社区的一部分。



常见的版本控制软件

1,CVS,逐渐被SVN取代,是CVX重写版和改写版

2,SVN,Subversion

3,Git,Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件



svn的服务器常见有3种运行访问方式

1、独立服务器(例如:svn://IP/sadoc);

2、借助apache(例如:http://IP/sadoc);

   1)单独安装Apache+svn  (不建议)

   2)csvn是一个单独的整合的软件,带web界面管理的svn软件。

3、本地直接访问(例如:file://IP/sadoc)



客户端访问方式

   Subversion可以通过多种方式访问--本地磁盘访问,或各种各样不同的网络协议,但一个版本库的地址永远都是一个URL,URL方案反映了访问方法

file://直接版本访问(本地磁盘或者网络磁盘)

http://通过WebDAV协议访问支持Subversion的Apache服务器

https://与http://相似,但是用的SSL加密

svn://通过未认证的TCP/IP自定义协议访问svnserver服务器

svn+ssh://通过认证并加密的TCP/IP自定义协议访问svnserver服务器



SVN数据格式

Subversion存储版本数据方式2种:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点;那么在创建Subversion版本控制仓库的时候,可以指定存储版本数据为FSFS方式;



优缺点

集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:

开始新一天的工作:

1、从服务器下载项目组最新代码

2、进入自己的分支,进行工作,每隔一小时向服务器上自己的分支持提交一次代码(很多人都有这个习惯。因为有时候自己对自己代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。

3、下班时间快到了,把自己的分支合并到服务器的主分支上,一天的工作完成,并反映给服务器

这就是经典的svn工作流程,从流程上看,有缺点,也有优点。


缺点:

1、服务器压太大,svn数据库容量暴增

2、如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等

3、不适合开源开发(开发人数非常非常多,但是Googleapp engine就是用SVN的)。但一般集中式管理的有非常明确权限管理机制(例如分支访问限制),可以实现分层管理,从而很好解决开发人数众多问题



优点:

1、管理方便,逻辑明确,符合一般人思维习惯

2、易于管理,集中式服务器更能保证安全性

3、代码一致性非常高

4、适合开发人数不多的项目开发



svn服务端搭建部署

1. 系统环境:

[iyunv@YII~]# cat /etc/redhat-release

CentOSLinux release 7.2.1511 (Core)

[iyunv@YII~]# uname -rm

3.10.0-327.el7.x86_64x86_64



2. yum安装subversion

[iyunv@YII~]# yum install subversion -y



3. 检测是否安装成功

[iyunv@YII~]# rpm -qa subversion

subversion-1.7.14-10.el7.x86_64



4. 配置并启动SVN

建立svn版本库数据存储根目录(svndata)及用户,密码权限目录(svnpasswd)

[iyunv@YII~]# mkdir -p /application/svndata     

[iyunv@YII~]# mkdir -p /application/svnpasswd   



5. 启动SVN服务指定服务的SVN根目录



[iyunv@YII~]# svnserve -d -r /application/svndata/



6. 查看SVN进程:

[iyunv@YII~]# ps -ef|grep svn

root       2579     1  0 09:32 ?        00:00:00 svnserve -d -r/application/svndata/

root       2586  2487  0 09:35 pts/0    00:00:00 grep --color=auto svn



7. 查看SVN端口:

[iyunv@YII~]# netstat -lntup|grep 3690

tcp        0     0 0.0.0.0:3690           0.0.0.0:*               LISTEN      2579/svnserve



到此,SVN服务端安装完毕,以下为服务端的配置:



    建立项目版本库

创建一个新的subsersion项目test.com,其实类似test.com这样的项目可以创建多个每个项目对应不同的代码,以此为例:

[iyunv@YII~]# svnadmin create /application/svndata/test.com

[iyunv@YII~]# ls -ld /application/svndata/test.com/

drwxr-xr-x6 root root 80 Apr  9 09:53/application/svndata/test.com/



2. 调整SVN配置文件及权限文件

配置允许用户hejp读写:

[iyunv@YII~]# cd /application/svndata/test.com/conf/

[iyunv@YIIconf]# cp svnserve.conf svnserve.conf.ori

修改配置文件

sed -i ’s/#anon-access = read / anon-access = none /’ svnserve.conf

sed -i ’s/#auth-access = write / auth-access = write /’ svnserve.conf

sed -i ’s%#password-db = passwd % password-db = /application/svnpasswd/passwd%’svnserve.conf

sed -i ’s%#authz-db  =  authz % authz-db  = /application/svnpasswd/authz%’ svnserve.conf



检查:

[iyunv@YIIconf]# diff svnserve.conf svnserve.conf.ori

19,20c19,20

<  anon-access = none

<  auth-access = write

---

> #anon-access = read

> #auth-access = write

27c27

<  password-db = /application/svnpasswd/passwd

---

> #password-db = passwd

34c34

<  authz-db = /application/svnpasswd/authz

---

> #authz-db = authz



3. 把密码认证文件模板考到相关目录,并设置只有root才能看。

[iyunv@YIIconf]# cp passwd  authz/application/svnpasswd/

[iyunv@YIIconf]# cd /application/svnpasswd/

[[iyunv@YIIsvnpasswd]# chmod 700 authz passwd

[iyunv@YIIsvnpasswd]# ll

total 8

-rwx------1 root root 1080 Apr  9 10:20 authz

-rwx------1 root root  309 Apr  9 10:20 passwd



4. 编辑passwd添加用户ningmi:

[users]

# harry= harryssecret

# sally= sallyssecret

hejp = 888888

hejianping= 111111

提示:

1)等号前为SVN账号,等号后为SVN密码,密码是明文,注意密码权限。

2 )更改svnserve.conf时,需要重启svn,更改authz,passwd文件时不需要重启。

Kill–USR1 `cat /application/svndata/svn.pid`

Svnserve–d –r /application/svndata/ --pid-file=/application/svndata/svn.pid



5. 配置authz文件:

#[repository:/baz/fuz]

# @harry_and_sally= rw

# * = r

[test.com:/]

hejp = wr     #读写权限

hejianping = r  #只读权限



[<项目库>:/项目/目录]

@<用户组名> = <权限>

<用户名> = <权限>



6. 重启服务:

[iyunv@YIIsvnpasswd]# pkill svnserve

[iyunv@YIIsvnpasswd]# ps -ef|grep svn

root       2916  2487  0 10:47 pts/0    00:00:00 grep --color=auto svn

[iyunv@YIIsvnpasswd]# svnserve -d -r /application/svndata/

[iyunv@YIIsvnpasswd]# ps -ef|grep svn                    

root       2918     1  0 10:47 ?        00:00:00 svnserve -d -r/application/svndata/

root       2920  2487  0 10:47 pts/0    00:00:00 grep --color=auto svn



至此服务端设置完成。
svn客户端安装

1.下载和安装svn windows 客户端
QQ截图20160411090416.png

QQ截图20160411090422.png

2. 新建文件夹svn 右击svncheckout设置设置取出数据

QQ截图20160411090427.png

4,设置svn地址:svn://ip/项目名
QQ截图20160411090435.png

5,输入账号密码
QQ截图20160411090440.png

6,见到这个页面就代表取出数据成功了
QQ截图20160411090445.png

至此客户端安装完成。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-202387-1-1.html 上篇帖子: CentOS 6的系统启动流程 下篇帖子: Linux命令整合之alias 控制系统 管理系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表