声明,本文大多数都是东拼西凑而来,并非本人完全出品,如有雷同,大家见谅!

另外,欢迎大家光顾我们公司游戏:航空大亨、船长日志、我是英雄(三款主打带给大家)

一、svn概述

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

二、svn中的一些基本概念

(1). repository(源代码库)

源代码统一存放的地方

(2). Checkout (提取)

当你手上没有源代码的时候,你需要从repository checkout一份

(3). Commit (提交)

当你已经修改了代码,你就需要Commit到repository

(4). Update (更新)

当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更

三、不多废话,杀入主题,安装部署svn 独立服务器。  (整合apache的安装请自己搜索)

1.安装方法:

①yum安装:yum -y install subversion(你的技术还停留在yum基础么?)

②源码包编译安装(我比较喜欢源码包安装,因为有丁点难度,哈哈)

[root@gang ~]# wget http://www.apache.org/dist/subversion/subversion-1.8.5.tar.gz

[root@gang opt]# tar zxf subversion-1.8.5.tar.gz

[root@gang opt]# cd subversion-1.8.5

[root@gang subversion-1.8.5]# mkdir -p /usr/local/webserver/

2、别急着安装,现在来安装依赖包

1).安装apr-1.4.6.tar.gz

[root@gang webserver]# tar zxf apr-1.4.6.tar.gz

[root@gang webserver]# cd apr-1.4.6

[root@gang apr-1.4.6]# ./configure --prefix=/usr/local/webserver/apr

[root@gang apr-1.4.6]# make && make install

2).安装apr-util-1.4.1.tar.gz

[root@gang webserver]# tar zxf apr-util-1.4.1.gz

[root@gang webserver]# cd apr-util-1.4.1

[root@gang apr-util-1.4.1]# ./configure --prefix=/usr/local/webserver/apr-util --with-apr=/usr/local/webserver/apr

[root@gang apr-util-1.4.1]# make && make install

3).安装pcre-8.32.tar.gz

[root@gang webserver]# tar zxf pcre-8.32.tar.gz

[root@gang webserver]# cd pcre-8.32

[root@gang pcre-8.32]# ./configure --prefix=/usr/local/webserver/pcre && make && make install

4).安装zlib-1.2.5.tar.gz

[root@gang webserver]# tar zxf zlib-1.2.5.gz

[root@gang webserver]# cd zlib-1.2.5

[root@gang zlib-1.2.5]# ./configure  && make && make install

----此处的./configure不可随意的--prefix,不然会导致ssh服务,启动异常,或者之后svn错误

5).获取sqlite文件支持

[root@gang webserver]# wget http://cznic.dl.sourceforge.net/project/sqlite.mirror/SQLite%203.7.12/sqlite-amalgamation-3071200.zip

[root@gang webserver]# unzip sqlite-amalgamation-3071200.zip

[root@gang webserver]# mkdir -p /usr/local/webserver/subversion-1.8.5/sqlite-amalgamation/

[root@gang webserver]# cp sqlite-amalgamation-3080200/* subversion-1.8.5/sqlite-amalgamation/

三、正式安装

[root@gang subversion-1.8.5]# ./configure --prefix=/usr/local/webserver/svn --with-apr=/usr/local/webserver/apr --with-apr-util=/usr/local/webserver/apr-util --with-zlib=/usr/local/webserver/zlib/ --without-berkeley-db --with-openssl=/usr/include/openssl/

#svn存储版本数据有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点

[root@gang subversion-1.8.5]# make  && make install

至此svn安装完毕(如果各位遇到其他问题,请咨询度娘和谷歌)

export "PATH=$PATH:/usr/local/webserver/svn/bin" >> /etc/profile

echo "

/usr/local/lib

/usr/local/lib64

"  >> /etc/ld.so.conf

[root@gang ~]# ldconfig

四、正式使用

1.创建版本库

[root@gang ~]# svnadmin create /data/svndata/20140116    ---20140116是版本库名称

输入后,会在 “创建的目录下”生成如下三个文件 :/data/svndata/20140116/conf

svn服务配置文件 svnserve.conf
用户口令文件 passwd

权限配置文件 authz

2.配置文件详解及案例

No1.  svnserve.conf 文件,该文件配置项分为以下5项:(每行的配置前不能有空格)

anon-access: 控制非鉴权用户访问版本库的权限。

auth-access:控制鉴权用户访问版本库的权限。

password-db: 指定用户名口令文件名。

authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。

realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件

No2. passwd里边保存用户和密码

[users] ----定义用户和用户密码

# harry = harryssecret

# sally = sallyssecret

admin = 追梦创游

guest = 航空大亨

user1 = 船长日志

user2 = “Doodle Fill For Tango”

gang = Linux

word = 运维工程师

chenjian = chenjianpwd

No3. authz  文件

[groups] ----定义用户组    左侧为组,又侧为包含用户

admin = admin, gang

group1 = user1, user11

group2 = user2

docs = word

training = chenjian

--这里把不同用户放到不同的组里面,下面在设置目录访问权限的时候,用目录来操作就可以了。

# 为所有库指定默认访问规则

# 所有人可以读,管理员可以写,危险分子没有任何权限

[/]      --对应目录:/data/svndata

* = r

@admin = rw       ----admin组的用户可读写

dangerman =       ----危险用户没权限

# 允许开发人员可以完全访问他们的项目版本库

[proj1:/]            ----定义group组 1 的用户可以读写

@group1 = rw         ----带@ 的,代表组, 不带@ 的表示对用户权限的设定

[proj2:/]

@group2 = rw

[bigproj:/]

@grou1 = rw

@group2 = rw

trevor = rw

# 文档编写人员对所有的docs目录有写权限

[/trunk/doc]

@docs = rw

# 培训人员可以完全访问培训版本库

[TrainingRepos:/]        -------版本库目录格式:
@training = rw                       [<版本库>:/项目/目录]
                                    @<用户组名> = <权限>
                                    <用户名> = <权限>

2. svn服务控制

开启svn服务:svnserver –d –r /var/svndata    --  -d表示后台运行  -r 表示根目录

--listen-port 指定监听端口
关闭svn服务: killall svnservice 或者kill -9 pid

五、客户端的使用。

根据你的系统32bit/64bit下载TortoiseSVN 1.7-1.8内的版本

把文件上传到SVN版本库后,上传的文件不再以文件原来的格式存储,而是被svn以它自定义的格式压缩成版本库数据,存放在版本库中(/data/svndata/20140116/db/revs中)。

附注: svn最重要的一点,权限分配!

原文地址请参照:http://blog.csdn.net/tianlesoftware/article/details/6119231

转载于:https://blog.51cto.com/jishuweiwang/1352324

svn服务器基本知识及搭建相关推荐

  1. linux svn 服务器下载,Linux下搭建SVN服务器完全手册

    系统环境 RHEL5.4最小化安装(关iptables,关selinux) + ssh + yum 一,安装必须的软件包. yum install subversion (SVN服务器) mysql- ...

  2. svn服务器web项目,liunx 搭建svn服务器并实现钩子自动更新到web项目

    1:检查系统有没有安装svn #rpm -qa subversion 2: 如果没有安装采取安装svn # yum install subversion 3: 创建版本库 # mkdir /opt/s ...

  3. 如何创建 SVN 服务器,并搭建自己的 SVN 仓库

    SVN是一个广泛使用的版本控制系统,在日常工作中有广泛的应用空间,比如文档管理,我们就可以搭建一个 SVN 仓库,日常需要归类保存的文档统统上传到仓库中,那如何创建 SVN 服务器, 又如何搭建 SV ...

  4. idea连接svn_搭建本地虚拟(centos)svn服务器

    因为用的笔记本电脑没有多大的硬盘和内存,要运行的环境IDEA.postgres.geoserver,为了对代码进行版本控制,同时为了可以随时迁移.所以在准备搭建虚拟svn服务器,结果证明内存确实没有增 ...

  5. mac搭建svn服务器文件被锁定,mac安装svn_在MAC下搭建SVN服务器的详细教程

    摘要 腾兴网为您分享:在MAC下搭建SVN服务器的详细教程,易信,无忧兼职,茄子快传,每日一淘等软件知识,以及android解锁大师,workflow,乐客联盟,海鸥旅游,mm直播app,腾讯新闻,中 ...

  6. SVN服务器搭建和web目录同步

    Linux环境下配置同步更新的SVN服务器 转自 http://www.neatstudio.com/show-571-1.shtml 先搭建环境 Linux版本选择Centos5.0(膘叔:我是用的 ...

  7. Linux搭建SVN服务器详细教程

    前言 本文讲解Linux系统下如何搭建SVN服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置. SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统 ...

  8. SVN服务器搭建与使用

    TortoiseSVN(1.9.5)与VisualSVN Server搭建SVN版本控制系统(中文版) 参考文献:http://www.cnblogs.com/xing901022/p/4399382 ...

  9. 使用Docker搭建svn服务器教程

    使用Docker搭建svn服务器教程 svn简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很 ...

最新文章

  1. Huggingface及BERT代码介绍
  2. pandas写excel报错ModuleNotFoundError: No module named ‘xlwt‘
  3. blob转file对象_C++核心准则C.41:构造函数生成的对象应该被完全初始化
  4. linux下安装mysql-5.6.41
  5. df命令---Linux学习笔记
  6. 献给汇编初学者-函数调用堆栈变化分析
  7. java和asp.net core,VS 2019教程:创建ASP.NET Core Web App
  8. adb服务无法开启问题解决方法
  9. 运营商级ICT项目建设之雪亮工程方案,提升群众安全感
  10. adobe creative cloud的开机自启如何阻止
  11. Flink的基础概念
  12. word文档更新目录为什么更新不了?
  13. Rasa课程、Rasa培训、Rasa面试系列 金融银行案例Bot Step By Step学习
  14. 中联通宣布3G业务10月1日正式商用 套餐共分九档
  15. 生物群落数据分析最常用的统计方法:回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法
  16. CVPR 2022 | 商汤/上交/港中文提出U2PL:使用不可靠伪标签的半监督语义分割
  17. 前端js解析识别图片二维码
  18. Multimedia Event Extraction From News With a Unified Contrastive Learning Framework论文解读
  19. 基于数据智能的区域教育大平台建设与应用实践
  20. Hibernate SQL方言集合

热门文章

  1. VTK:Filtering之PerlinNoise
  2. C++旋转二维MxN矩阵的算法(附完整源码)
  3. OpenGL material light材质灯光的实例
  4. C++trie树的多重搜索算法的实现(附完整源码)
  5. QT的QAssociativeIterable类的使用
  6. QML基础类型之list
  7. mysql5.5 配置_MySQL5.5 安装配置方法教程
  8. jsp实现html注册,jsp+servlet实现最基本的注册登陆功能
  9. c语言realloc函数中写啥,求大神解惑realloc函数,谢谢!
  10. 迪杰斯特拉算法 php,Dijkstra算法的复杂度