Windows下SVN服务器的详细安装配置手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、Windows下SVN服务器的安装配置
SVN全称Subversion,是一款开源的版本控制系统,支持在本地访问或通过网络访问数据库和文件系统存储库。
不但提供了常见的比较、修补、标记、提交、回复和分支等功能,SVN还增加了追踪移动和删除的能力。
此外,它支持非ASCII文本和二进制数据,所有这一切都使SVN不仅对传统的编程任务非常有用,同时也适用于Web开发、图书创作和其他在传统方式下未采纳版本控制功能的领域。
1.1 SVN的基本原理
SVN是一种集中的分享信息的系统,它的核心是版本库,它存储所有的数据,版本库按照文件树形式存储数据,包括文件、目录。
任意数量的客户端可以连接到版本库,读写这些文件。
通过写,别人可以看到这些信息,通过读数据,可以看到别人的修改。
SVN可以通过多种方式访问:本地磁盘访问,或各种各样不同的网络协议,但一个版本库地址永远都是一个URL。
“版本库访问URL”描述了不同的URL模式对应的访问方法,如表7-1所示:
表7-1:不同的URL模式对应的访问方法
修订号代表了一次提交后版本库整个目录树的特定状态,另一种理解是修订号N代表版本库已经经过了N此提交。
因此,当我们在使用SVN时,如果谈及“foo.c的修订号5”时,实际的意思就是“在修订号为5时的foo.c”。
修订号N和M并不一定表示一个文件是不同的。
其他的版本控制工具,例如CVS,则使用每一个文件一个修订号的做法。
1.2 SVN的下载与安装
读者可以下载SVN的服务器安装文件:svn-1.4.0-setup.exe;
Windows客户端安装文件:TortoiseSVN-1.6.11.20210-win32-svn-1.6.13;
在客户端使用方面可以使用TortoiseSVN客户端,当作为软件开发人员一般会在Eclipse 开发工具中按照SVN相关插件。
1.3 创建资源库
安装完SVN的服务器端和客户端之后,需要创建SVN库,方法是进入命令行,执行
理工具,通过svnadmin -?可以查看可用的命令,如果所示:
1.4 运行SVN服务
其中参数d表示以后台模式运行SVN服务,参数r用于指定服务根目录(即SVN库所在根目录)。
svnserve命令的可用参数及其作用可用svnserve –help列出,如图所示:
需要注意用这种方式启动SVN服务器可能比较麻烦,而且在SVN服务没有启动的时候,使用SVN客户端签出文件的时候会提示失败,而且也不好跟踪管理;所以在Windows下我们可以将SVN注册为系统服务。
建立服务的命令如下(注意空格):
[注意]:svnservice表示服务的名称,这个可以随意起名;binPath是SVN服务bin目录的安装位置,-r后面的则是svn的服务根目录,depend指定依赖的协议,start表示启动方式,这里为自动启动。
建立服务后,可以在Windows服务管理中启动SVN服务,如下图所示:
如果想从系统服务里删除刚才注册的SVN服务,可以使用sc delete svnservice命令。
1.5 用户授权
进入E:/svnroot/repos目录下的conf目录,打开svnserve.conf,去掉anon-access=read前面的#号注释,最好把anon-access=read前的空格也去掉,然后把anon-access=read改为anon-access=none,这表明没有用户名与密码的是不能读写的;同样把auth-access=write和password-db=passwd去掉注释(包括前面的空格)。
接下来就可以对用户的密码进行设置。
打开conf/passwd文件,在文件结尾按“用户名
1.6 导入项目文件
往SVN库导入项目文件的操作可以通过客户端TortoiseSVN来完成,也可以通过Eclipse 的SVN插件来完成。
首先,在待导入的目录上单击鼠标右键,选择“TortoiseSVN”---》“Import(导入)”选项,然后在URL里输入svn://localhost/repos即可。
当然,也可以在SVN命令中执行如下命令:
在SVN库中创建目录的命令是“svn mkdir”,代码如下:
如果是使用的Eclipse创建的项目,则可以通过SVN插件来完成项目的导入操作,如图所示:
(1)选中项目,选择Share Project
(2)、选择相应的版本控制系统
(3)、创建新的资源库位置
这里需要注意下,导入项目时最好现在SVN库中建立一个目录,然后把整个项目导入,检出的时候选择上一级目录,这样就可以完整的签出项目文件夹。
(4)、导入项目
(5)、导入项目后,提交项目文件,至此项目导入就正式完成了,后面就可以使用本次导入的项目进行版本控制了!
1.7 SVN客户端使用操作
1.7.1 检出项目
使用TortoiseSVN客户端或EclipseSVN插件可以检出项目。
以TortoiseSVN为例,用右键在指定位置创建一个新目录(待存放的项目目录),SVN Check Out(检出)….,然后在URL里输入svn://localhost/repos检出资源库的所有项目,或者svn://localhost/repos/workflow 检出某一个项目。
完成后,在这个新的目录下会有一个绿色的钩。
如果在命令行操作,则需要使用命令“svn checkout”,代码如下:
1.7.2 用add命令添加文件
1.7.3 Commit命令
注意,使用F参数指定提交时写入的Log文件的路径。
1.7.4 Update命令
使用“svn update”命令来更新本地文件的版本,代码如下:
执行命令后,会提示文件更新的修订版本。
1.8 远程客户端访问
SVN的远程客户端访问也比较简单,通过客户端程序TortoiseSVN,只要在URL中输入SVN服务器的访问地址即可,例如:“svn://192.168.20.247/repos”,如图所示:
除了使用svnserve服务自定义的协议访问SVN资源库外,也可以通过配置采用HTTP 协议进行访问,具体过程如下:
1.9 目录访问权限控制
SVN支持对项目库中的每个目录进行权限控制,方法是编辑<SVN>库
接下来编辑<SVN库>\conf\authz文件,代码如下:
这样就实现了为指定用户组设置访问目录的权限,目录的设置格式为:“[repos:/<目录名>]”。
1.10 强制性提交注释
在实际的项目研发版本控制中,为了规范项目组成员的行为,有时候需要SVN版本控制系统采取强制性的措施,例如要求强制性提交注释等。
这里我们就来说下如何在SVN中设置强制性提交注释的操作:
找到版本库目录的hooks文件夹,例如:E:\svnroot\repos\hooks,在此文件夹中添加
户提交!。