centos6.5 svn服务端搭建
一、前言
Subversion是一个免费的开源的版本管理系统,它是作为CVS(Concurrent Versions System)的取代品出现的。本文简单介绍了Subversion在centos上的安装过程及其基本概念和使用方法。
二、安装
安装命令:
yum -y install subversion
安装完用命令:
svn –version
查看一下是否安装成功,如果成功则显示
svn, version 1.6. (r934486)
compiled Aug , ::
…
三、项目目录结构及导入
一般来说会在一部服务器上面管理多个项目,但是想让各个项目之间相互独立,这种情况最好为不同的项目建立不同的仓库进行管理。譬如现在有两个项目,名字分别为hello和world,接下来以hello为例子进行建仓和导入。
1. 建立本地工程的仓库
Subversion把工程的各个版本的数据集中放在一个仓库(repository)中。假定我们要建立一个本地工程,叫做hello,为了使用subversion对它进行版本管理,首先要为该工程建立一个仓库。
subversion安装后会生成一个~/.subversion目录,这里,我们将工程hello的数据仓库建立在~/.subversion/repos/hello目录。
[root@localhost ~] cd ~/.subversion/
[root@localhost .subversion] mkdir respos
[root@localhost .subversion] svnadmin create repos/hello
[root@localhost .subversion] ls –p repos/hello/
conf/ dav/ db/ format hooks/ locks/ README.txt
2. 组建本地工程工作目录
假定工程hello的顶层目录为~/projects/hello(这里~代表/root),则应如下组建工程的工作目录:
~/projects/hello/branches
~/projects/hello/tags
~/projects/hello/trunk/
hello.c
/trunk目录是实际上的工程顶层目录,工程中的所有文件和文件夹都在该目录下组织。
[root@localhost ~]# cd projects/hello/
[root@localhost ~]# ls -p
branches/ tags/ trunk/
关于标准目录结构:
trunk是主分支,是日常开发进行的地方。
branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。
tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。
详情请参考:http://www.cnmiss.cn/?p=296
3. 将本地工程hello导入本地的Subversion的工程仓库
Adding /root/projects/hello/trunk
Adding /root/projects/hello/trunk/hello.c
Adding /root/projects/hello/branches
Adding /root/projects/hello/tags
Committed revision 1.
注意,完成导入后,原目录~/projects/hello并不转换为“工作副本(working copy)”,而且该项目已经转由该仓库接管,即该仓库中已经包含了首次导入的工程的所有信息,与源目录~/project/hello再无任何关系,我们完全可以删除这一目录而不必担心丢失工程项目数据。注意,如果源目录并不是一个“工作副本”,那么就无法用svn进行管理,在其中所作的任何变动都无法提交到仓库。
要用subversion对工程进行版本管理,那么工程项目的开发必须在一个“工作副本”中进行,即首先要从仓库获取一个“工作副本”。
4. 工程开发过程中的版本管理与控制
使用subversion对工程进行版本管理的一般流程如下:
a)建立工程的数据仓库,并导入工程的最初版本(前面已经完成);
b)从仓库获取一个“工作副本”(svn checkout,可以获取最新版本也可以获取以前的某个版本),在这个“工作副本”中进行工程开发,修改完毕将变动提交到仓库。
下面简单介绍b)步骤。
由于工程hello已经导入到仓库,因此原目录可以删除。我们删除原目录,并从仓库获取工程hello的一个“工作副本”(working copy);当然,如果你当心这样做会造成数据丢失,完全可以重新建立一个目录,将“工作副本”保存到那里。
//注意,我们用红色标出了"trunk",如果不指定这一目录,则会取出除工程源文件外的其他不必要的目录如branches和tags。
至此,我们在仓库根目录~/.subversion/repos建立了仓库hello,并将本地工程导入仓库中,最后在本地目录获取仓库的一个工作副本。可以同样用这个方法建立其他仓库。
四、权限管理及配置
新建一个仓库之后,在仓库目录下面(这里是~/.subversion/repos/hello/)会有一个conf目录,里面有三个文件,分别是
authz:权限配置文件
passwd:用户名口令文件
svnserve.conf:svn服务配置文件
这里,因为开发人员会参与多个项目,所以我们希望权限配置文件和用户口令文件是公用的,我的做法是在.subversion目录下新建多一个目录repos_conf,把authz和passwd文件复制过去,根据实际情况进行配置。
修改各个仓库下面的svnserve.conf文件,该文件配置项分为以下5项:
anon-access: 控制非鉴权用户访问版本库的权限。
auth-access: 控制鉴权用户访问版本库的权限。
password-db: 指定用户名口令文件名。
authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
修改如下:
然后以默认监听端口(3690)启动svn服务:
svnserve -d -r /root/.subversion/repos
参数-d表示以守护进程运行,-r后面接服务的根目录,如果需要绑定别的端口,则在后面加上--listen-port 端口号。
关闭服务:
killall svnserve
注意,如果修改了svnserve.conf文件,需要重启服务,authz和passwd则不用。
五、总结
svn的搭建及配置流程总体如下:
1. 安装svn服务端
2. 按照标准目录结构创建本地工程目录
3. 将本地工程导入仓库
4. 删除原目录,在本地获取主分支的工作副本
5. 权限和口令文件配置,svnserve.conf配置
6. 启动svn服务
参考:
http://www.cnblogs.com/hitwtx/archive/2011/11/16/2251581.html
centos6.5 svn服务端搭建的更多相关文章
- linux svn 服务端搭建
环境是centos6.x. 关于团队对代码管理,相信大部分人习惯于svn.不过我个人比较喜欢git的.这个blog git 常用命令 就是介绍git的基本用法.现部署svn服务端方式如下: 1. 用y ...
- svn服务端搭建
本文介绍的是SVN的服务器端的搭建. 一.SVN服务器安装 1. 首先来下载和搭建SVN服务器,下载地址如下: http://subversion.apache.org/packages.ht ...
- SVN服务端和客户端的安装与搭建
版权声明:本文为博主原创文章,转载请注明原文出处. https://blog.csdn.net/zzfenglin/article/details/50931462 SVN简介 SVN全名Subver ...
- 最全Linux搭建SVN服务端教程
文章首推 支付宝接口对接 高德地图调用 验证码登录 QQ邮箱登录 今日主题:Linux搭建SVN服务端 简介 相信程序员对SVN还是不陌生的,虽然现在用Git比较多,但是SVN也是用的,SVN可以做代 ...
- 阿里云ESC搭建SVN服务端
CentOS7)下yum命令快速安装svn服务端,学习在思考中独孤中度过,在孤独中进取! 01.SVN服务的安装(subversion) 02.ESC安全组策略 1.在线安装svn服务 $ sudo ...
- SVN服务端启动解决方案(2013-12-10 记)
解决每一次开机都得用DOS启动SVN服务,而DOS窗口又无法关闭的情况 1.安装Setup-Subversion-1.8.5.msi搭建好SVN服务端(下载地址:http://subversion. ...
- SVN 服务端 和 客户端
网址大全 | EF CodeFirst | 电视 | MyNPOI | 开源 | 我的皮肤 | ASP.NET MVC4 | 前端提升 | LINQ | WCF ...
- git跟svn 服务端对比
Git已经火了很久,简单的使用也没有问题,但有几个问题一直以来都没有搞清楚:git跟svn有哪些异同,两者相互的优劣是什么,git的分布式怎么理解,为什么有离线提交,,,自己动手,分别看一下服务端跟客 ...
- svn服务端和eclipse配合使用
今天弄了个svn服务器来做项目的版本控制,讲讲我做的步骤吧 1.安装svn服务端 2.下载subclipse插件 3.将subclipse插件安装到eclipse上,点击Install New Sof ...
随机推荐
- DP 过河卒
棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦过河卒”. 棋盘用坐标 ...
- Eclipse环境配置
7.打开Eclipse的偏好设置,我们需要对Eclipse做一下配置: 8.从左侧栏选择java下面的Installed JREs,然后点击Add按钮,我们要为Eclipse配置JDK: 9.选择“S ...
- Java-Runoob-高级教程:Java 序列化
ylbtech-Java-Runoob-高级教程:Java 序列化 1.返回顶部 1. Java 序列化 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包 ...
- 一行代码搞定 FTP 服务
环境搭建: python windows/linux pip install pyftpdlib (安装失败请到这里下载:https://pypi.python.org/pypi/pyftpdlib/ ...
- ping第一包时间过长
一.现象 公司互联网域(说白了就是可以连外网的vlan区域的主机)的几台主机在ping一个合作方提供的域名时,发现在ping 第一个包时,时间特别长,后面第2--N包开始正常.直接ping 该域名对应 ...
- NFS的安装以及windows/linux挂载linux网络文件系统NFS
1.创建linux的NFS服务端安装centos6.4,关闭防火墙/etc/init.d/iptables status yum install nfs-utils rpcbind [root@lin ...
- 007:MySQL SSL
一. SSL安装 SSL(Secure Socket Layer)是维护Client - Server之间加密通讯的一套安全协议: --默认ssl未开启 mysql> show variable ...
- POJ-2282题解&数位DP总结
一.题意 给定一个区间[a, b](注意输入的时候可能a > b,所以,在数据输入后,要先比较a和b,如果a > b,交换a和b的值),统计这个区间里面,数位上有多少个0.多少个1.--. ...
- open the flashback
1.打开flashback: 关闭数据库 启动到mount方式 SQL>startup mount; 如果归档没有打开,打开归档[因为flashback依赖Media recovery,所以在打 ...
- Python小知识点(3)--装饰器
(1)装饰器含参数,被装饰函数不含(含)参数 实例代码如下: import time # 装饰器函数 def wrapper(func): def done(*args,**kwargs): star ...