linux系统安装subversion 服务器与配置Word文件下载.docx
《linux系统安装subversion 服务器与配置Word文件下载.docx》由会员分享,可在线阅读,更多相关《linux系统安装subversion 服务器与配置Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
1.引言
1.1编写原因
由于公司一直在版本的管理上采用的都是CVS系统,总体上而言还是很优秀的,经过多
年的项目开发管理经历,在使用CVS系统在管理中大型的软件项目时还是遇到了很多不可克
服的缺陷和与现行,主要表现在如下几个方向:
1、无法进行文件名称的修改活动,这样就会导致必须先删除该文件在上传,丢失了历
史信息;
2、目录名称没有管理,使得在项目的目录结构管理比较麻烦;
3、项目分支代价太高,需要对每一个文件都进行标记,对于大的项目耗时太长,并且
基本上不能删除废弃了的分支和标记,因为那样很容易导致项目仓库的损坏;
4、对于文件二进制和文本的处理经常会出现混乱,结果就是将二进制文件当做文本上
传后内容被扩展导致丢失,因为有些时候二进制文件的扩展名和某些文本文件的扩
展名相同了,所以导致CVS识别出错;
于是选择SVN来替代CVS系统,以解决上述问题;
1.2编写目的
1、符合公司未来发展的管理要求,实现公司管理体系的组合;
2、提高公司管理效率,降低公司管理成本;
3、明确公司员工行为规范,加强公司内部及客户现场开发管理;
1.3参考
http:
//wiki.centos.org/zh/HowTos/Subversion
2.概述
2.1SVN简介
Subversion是一个自由、开源的版本管理系统,可以免费使用,这也是Subversion
能够迅速串红的原因之一。
Subversion有两种运行方式,一种是基于ApacheHttpServer,另外一种是Subver
sionStandaloneServer。
下面所讲的是基于ApacheHttpServer的sunversion,这
样做有几个好处:
1、能够使用WebDAV协议;
2、能使用浏览器作为客户端工具浏览源码仓库;
3、可以很容易的支持到SSPI(windows域认证)和LDAP(轻量目录访问协议),这些
都是Apache本身就支持的;
4、能得到比较晚上的Apache安全认证系统,比如SSL加密连接;
3.安装步骤
3.1安装前的准备
3.1.1安装环境要求
1.机器配置要求:
1)内存:
2G
2)swap分区大小:
如果内存为大于512M则swap大小为内存2倍如果内存在1到2G之间则swap大小为内存1.5倍如果内存在2到8G之间则swap大小为内存1倍如果内存大于8G则swap大小为内存0.75倍。
3)磁盘要求:
/opt鉴于公司所有服务器PC机,硬盘空间普遍在300G左右,建议/opt在100G左右。
2.软件环境:
1)操作系统:
centOS5.6
2)SVN服务器:
subversion-1.6.11
3.3.1.1安装环境要求
在终端输入命令:
yuminstallmod_dav_svnsubversion
该命令会自动从网络中搜索合适的svn安装文件,找到后会自动下载并安装;
同时,如
系统中没有安装apache,这段命令也会将其拉进来一并安装好;
3.2设置
3.2.1Apache配置
在进一步学习之前,需要确定Apache已经设置好。
首先打开/ect/httpd/conf/httpd.conf,然后修改ServerName
这个指引。
如果需要协助或拥有更复杂的设置,可以参考Apache的文件;
#servicehttpdstart//开启apache服务
#chkconfighttpdon
输入以上命令,然后在浏览器上输入:
//localhost/或http:
//192.168.1.*如
果弹出测试页面则apache启动成功!
3.1.2Subversion配置
下一步就是在Apache内设置某些参数,以便Subversion与Apache能够相互支持;
打开文件:
/etc/httpd/conf.d/subversion.conf
确认改配置文件中存在以下两行内容,如果没有则手动添加:
LoadModuledav_svn_modulemodules/mod_dav_svn.soLoadModuleauthz_svn_modulemodules/mod_authz_svn.so
加入下列内容以支持基本验证,并将Apache指向实际放置版本库的路径:
<
Location/svn>
DAVsvn
SVNPath/opt/svn/repos//单版本库目录形式SVNPath/opt/svn///多版本库目录形式
AuthTypeBasic//连接类型设置
AuthName"
Subversionsvn"
//连接框提示
AuthUserFile/opt/svn/user-auth-list//用户配置文件
AuthzSVNAccessFile/opt/svn/repos/authz//权限配置文件SVNListParentPathon//使用其可以访问主目录
Requirevalid-user//采用何种认证
/Location>
配置文件的标签设置,如:
中的“/svn”可以任意设置,但是在使
用浏览器访问的时候,根目录必须是“/svn”,否则无法访问;
所以严格而言,此处应
该设置成版本库的根目录;
添加完毕以后,保存;
然后重启httpd:
#servicehttpdrestart
3.1.3创建用户并设置密码
完成以上步骤之后就需要创建用户并设置密码,以建立用户文档;
开始时,要利用-cm这个选项,它会利用文件并用MD5将口令加密,在再次添加用户
的时候,则无需用到-c,只需-m则可;
在之前,需要确认用户文档的根目录存在否,如
果不存在,则需要创建文件夹/svn以充当根目录:
#cd/opt/
#mkdirsvn//在opt目录想创建文件夹“svn”
#htpasswd-cm/opt/svn/svn-auth-list‘yourusername’//‘yourusername’是
添加的用户名,回车后,系统会自动要求添加密码;
#htpasswd-m/etc/svn-auth-list‘yourusername’//继续添加用户的时候-c
没有了,-m的意思就是该用户输入的秘密通过MD5加密;
以上操作完毕之后,在对应的目录下会看到一个文件:
svn-auth-list,点击后能看
到刚才设置的用户名=密码(密码是MD5加密以后的代码)。
至此,用户信息目录创建完成。
注意:
1、用户信息文档是无需手动添加,通过以上命令,系统会自动添加文件夹并将用户
信息保存在文件内;
2、输入命令的时候,所创建的用户信息文档目录和subversion.conf里边
配置的AuthUserFile的路径必须一致,否则客户端访问的时候找不到用户信息;
3、用户信息文档目录是和接下来需要创建的版本库根目录处在同一层,这样方便日
后的维护;
3.1.4设置版本库
设置完用户信息后,就要根据subversion.conf配置文件所配置的目录信息来创建
svn的版本库;
命令如下:
由于在创建用户信息文档的时候,创建了/opt/svn/文件夹,而我们就将用svn来
做版本库的根目录;
#cd/opt/svn/
#svnadmincreaterepos//在svn文件夹下创建版本库repos,在svn下可以创建多个版本库
#chown-Rapache.apacherepos//这段命令非常重要,由于在创建的时候会用到linux的root用户添加,为了避免在客户端操作svn数据时出现权限问题,则使用该命令更改属主为apache用户,并设置可写权限;
#servicehttpdrestart//设置后重启httpd服务
至此,版本库创建完毕,可以通过本机浏览器查看安装效果,
//localhost/svn/repos看到很有趣的显现...如果需要输入用户名和密码,
恭喜!
svn安装完毕!
接下来要做的导入数据并设置权限,从而实现安装svn的真正目
的了。
也可以通过其他PC机访问,但是需要在服务器机器上使用防火墙命令开放
80(apache的默认端口)端口:
iptables-IINPUT-ptcp--dport80-jACCEPT//如果此命令不行,则可用:
/skin/iptables-IINPUT-ptcp–dport80-jACCEPT
然后在客户端通过浏览器访问,OK!
1、在本机如果无法访问,可能出现的问题是你的subversion.conf配置和输入的路径不
对,查看一下配置文件的开始标签,是否改成了<
因为默认的很有可能
就不是这样,而我们在配置的时候就恰恰容易忽略这一点,必须保证“/svn”和你创建
版本库的根目是一致的;
2、如果标签是正确的,那么就要确定subversion.conf中指定的版本库路径和之前创建
的版本库路径是否一致;
3、确定subversion.conf中指定的用户信息文档路径和创建的用户信息版本路径是否一
致;
将以上几点确认完毕后,重启httpd服务:
servicehttpdrestart,继续访问...OK!
3.1.5导入数据
svn安装并访问OK后,导入文件开始操作;
需要注意的是在导入项目的过程中,我们
往往会导入多个项目,为了在日后维护和客户端checkout的过程中能准确的找到所需要
要的项目,所以导入项目的命令需要在版本库路径下再写一个文件,将项目导入到改文
件下;
导入文件命令:
命令格式为:
svnimport/导入项目路径/file:
///opt/svn/repos/(项目仓库路径)-m“提示信息!
”
例如:
svnimport/opt/svn/repos/svnTest1_1file:
///root/svnTest1_1-m“InitialOK”//将root文件夹下的svnTest1_1项目,导入到版本库svnTest1_1的文件下,项目名称和文件名称最好保持一致,这样便于区分;
导入文件OK以后,在浏览器访问http:
//localhost/svn/repos,输入用户信息后则
会看到svnTest1_1项目的结构;
3.1.6权限设置
SVN权限继承关系
1、父目录设置权限,子目录未设置,则子目录继承父目录权限;
2、父目录设置rw,子目录设置r,则子目录实际为r权限;
3、父目录设置r,子目录设置rw,则子目录实际为rw权限;
4、父目录设置了权限,子目录设置空权限(等号后面什么也不写),则子目录无读写
权限;
5、同一目录在配置文件中先后多行设置权限,以最后一行为准;
(略)
4.使用Subversion客户端TortoiseSVN
命令svn是客户端使用的,也是开发人员使用最多的。
既然是命令,当然可以通过
命令行方式来运行,但没欠已经有很多开源好用的客户端软件,比如TortoiseSVN就是
其中一个。
4.1在windows系统环境下下载和安装TortoiseSVN
下载网站:
下载后安装,在windows环境下安装步骤略过;
TortoiseSVN安装后,在任意文件夹下右击鼠标就可以使用TortoiseSVN菜单了。
1、在TortoiseSVN的快捷键菜单中选择TortoiseSVN==>
Repo-browser菜单项,将弹出
输入资源库的地址对话框,如图:
由于服务器端subversion被apache代理,所有通过http:
//来访问;
2、点击OK,出现如图所示的对话框。
这里显示SVN资源库中的所有文件。
4.3在资源库中添加文件夹
1、在左侧的浏览窗口中右击,在弹出的快捷键菜单中选择Createfolder选项,弹出对
话框。
在对话框中输入在SVN服务器上新建的文件夹名:
trunk,如图:
2、SVN简介创建3个目录,分别为:
trunk、branches、tags目录,为什么创建这三个
目录,因为SVN建议采用这种目录结构,每个文件的目的不同:
trunk目录:
程序的主目录,通常源代码的一些文件会保存在这里
branches目录:
保存的是主程序的分支文件,比如同样的一个软件,可能出现分支开
发的情况,那么,可以把分支的代码文件保存在这里;
tags目录:
保存的是源代码分割版本的备份,比如,当软件的版本从version1.0
到version2.0时,需要有一份代码的备份,以备将来能够随时找回原
来的版本;
4.4导入文件到资源库(略)
4.5从资源库中迁出(略)
4.6更新(update)--修改--提交(commit)
4.7解决冲突的办法
4.8历史版本的比较
4.9恢复到之前的版本
4.10TortoiseSVN的配置
4.11与Eclipse的集成