CentOS(Linux)搭建SVN服务器和SVN的使用方法(图文详解)

  •   
  • 6588
  • Linux
  • 0
  • super_dodo
  • 2014/09/24

网络软件项目中Linux服务器中的CentOS已经项目管理工具SVN是中级程序员必须掌握的基础技能.也是项目开发和管理的利器,工欲善其事必先利其器,现在我们开始构建我的项目吧.初期达到的效果是:CenOS服务器安装运行SVN,创建项目版本库,本地windows使用svn客户端更新提交代码,CentOS端使用命令行进行检出更新提交代码等.

CentOS(Linux)搭建SVN服务器和SVN的使用方法

第一步:在CentOS上面安装SVN,并启动SVN.

//yum自动安装
yum update					//更新一下yum版本库
yum install subversion		//安装svn

//判断是否安装成功
svn help					//svn的帮助手册
svn --version				//看到svn的版本和基本信息	
svn --version --quiet		//看到svn的版本

rpm -ql subversion             //查看svn的安装位置

#查看服务是否正常起来:  
netstat -tunlp | grep svn  
tcp 0 0 0.0.0.0:3690 0.0.0.0:*   
EN 3970/svnserve  
#LISTEN 监听端口3690  

----------------------------------------
//若你之前已安装了svn或者想重新安装svn的话请看下面,判断是否成功请看上面
rpm -qa subversion			//检查是否安装了低版本的SVN
yum remove subversion		//卸载旧版本SVN
yum install subversion		//安装svn

第二步:创建代码库,并配置代码库(demo)

mkdir -p /opt/svn/demo					//新建一个项目目录
svnadmin create /opt/svn/demo			//创建SVN项目	

//执行上面的命令后,自动建立demo库,查看/opt/svn/demo 
//文件夹发现包含了conf, db,format,hooks, locks等文件,说明一个SVN库已经建立。


//进入上面生成的文件夹conf下,进行配置 
cd /opt/svn/demo/conf

//用户密码passwd配置
cd /opt/svn/demo/conf
vim passwd
//修改passwd为以下内容:

[users]
# harry = harryssecret
# sally = sallyssecret
dodobook=123456


//权限控制authz配置
cd /opt/svn/demo/conf
vim authz
//目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

//设置[/]代表根目录下所有的资源 
[/]
dodobook = rw

//服务svnserve.conf配置
cd /opt/svn/demo/conf
vim svnserve.conf

//追加开启以下内容:【采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.】
[general]
anon-access=none		#匿名访问的权限,可以是read,write,none,默认为read
auth-access=write		#使授权用户有写权限 
password-db=password 	#密码数据库的路径 
authz-db=authz			#访问控制文件 
realm=/opt/svn/demo		#认证命名空间subversion会在认证提示里显示,并且作为凭证缓存的关键字 

第三步,启动svn连接

svnserve -d -r /opt/svn/demo		//启动SVN 其他项目不换端口的话则不需要再启动

svnserve -d -r /opt/svn/other --listen-port 3391	//如果已经有svn在运行,可以换一个端口运行
//这样同一台服务器可以运行多个svnserver,请检查防火墙,建议用一个即可

ps -ef|grep svn|grep -v grep		//查看SVN进程

killall svnserve    				//停止SVN
svnserve -d -r /opt/svn/  		// 启动SVN

/usr/bin/svnserve --daemon --pid-file=/var/run/svnserve.pid 	//另外一种启动方式

第四步:本地环境(windows)下测试
最直接的可以使用浏览器 https://111.111.111.234/opt/svn/demo 直接访问. 以Web方式【http协议】访问,一般还要安装配置Apache

最常规的是本地安装TortoiseSVN,连接地址为 svn://111.111.111.234/opt/svn/demo,第一次的时候SVN检出,键入地址,自动生成svn本地地址目录.接下来就可以使用常规的更新和提交了.建议每次提交之前先更新.另外office的文件系统需要本地关闭之后才能提交正确.关于TortoiseSVN的语言包和下载版本,请根据你的操作系统等进行系在.使用说明也很多.择日再详述.

第五部:其实做本地项目到第四步就可以止步了.
当需要部署代码项目的正式环境的时候,在第四部的时候检出代码,就是干净的代码,部署到环境上,即为发布.

但是小项目在开发过程中,需要多人协作,也可能CentOS上面的环境也是一个svn的用户.当本地用户提交了代码,就需要去服务器上面更新一下svn的代码了.(运维高手有构建系统能自动同步到线上.)

常见的svn命令在Linux上面有.
//1.将文件checkout到本地目录(当前目录下)
svn checkout path (path是服务器上的目录)
//例: svn checkout svn://192.168.1.1/opt/svn/demo 
//简写:svn co

//2、往版本库中添加新的文件
svn add file
//例如:svn add test.php(添加test.php)
//svn add *.php(添加当前目录下所有的php文件)

//3.将改动的文件提交到版本库
svn commit -m "LogMessage" [-N] [--no-unlock] PATH(如果选择了保持锁,就使用--no-unlock开关)
//例如:svn commit -m "add test file for my test" test.php
//简写:svn ci

//4.更新到某个版本
svn update -r m path
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php
//(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
//简写:svn up

妥善顺利便捷的使用你的svn的工具,可以大大提高你的项目管控能力,同时省去使用ftp等工具,更好更多的腾出时间和精力去做更多的更重要的创新和项目.

相关链接 SVN服务端客户端在Windows下的安装配置和使用(详细图文)

相关链接 Linux(CentOS)下SVN 命令详解

关于自动构建web服务器和svn配合的请关注:

秋花惨淡秋草黄,耿耿秋灯秋夜长。已觉秋窗秋不尽,那堪风雨助凄凉!