一、 SVN介绍
二、 安装SVN服务器
1、下载SVN服务器软件
2、询问是否继续安装
3、下一步
4、确认安装
5、对产品的介绍以及下一步开始安装
6、选择安装路径(任何路径都可以)然后下一步
7、确认程序的名称以及是否将程序创建开始菜单
8、是否创建桌面图标和快捷图标
9、安装的清单以及说明
10、安装过程
11、安装完毕
12、安装结束
13、安装完服务器软件后环境变量已经配置完毕
三、 安装客户端软件
1、 下载SVN客户端软件
2、 双击TortoiseSVN-1.4.1.7992-win32-svn-1.4.2.msi安装
3、 确认安装
4、 确认安装路径
5、 开始安装
6、 安装过程
7、 安装完毕
8、 必须重新启动计算机
9、 安装汉化包
10、在任何一个文件夹上右点单击然后设置里面设置成简体中文
四、SVN服务器端配置
1、安装版本库
第一种方法使用命令行创建版本库
1、首先进入命令行
2、输入命令创建版本库
3、成功创建版本库
第二种方式使用window下鼠标操作
创建为本地使用的版本库
创建成功
2、进入版本库中conf文件夹,配置svnserve.conf文件
打开文件
3、将改动如下设置,将带#号的去掉 #表示注释
anon-access = read/none none 代表客户端登陆时需要密码
auth-access = write
password-db = passwd
realm = My First Repository
4、对password进行设置
添加一个用户名为administrator密码为manager的用户
5、启动SVN服务
-d表示后台模式启动
-r表示指定版本库所在根目录
五、 本地使用客户端向版本库提交数据
1、 首先新建一个文件例如在webroot下创建SVNProject目录
2、 点击SVN检出功能,本机地址可以是127.0.0.1或者为localhost均可
3、 由于服务器已经启动,所以能够将数据提交到版本库中,但是需要用户名和密码
4、 检出已经完成
5、 刷新后目录已经变成SVN版本控制样式
6、 进入SVNProject文件夹新建一个文件,并录入数据保存
7、 右键点击提交,更新版本库中的数据
8、 选中要被提交的文件
9、 再次输入用户名和密码进行验证
10、 提交成功服务器端版本库已经更新完毕
11、 向上一次再进入会发现刚刚的文件也变成了SVN版本控制样式的文件
12、 为了验证服务器端版本库中确实有刚才提交的文件,删除SVNProject文件夹
13、 新建一个文件夹SVNTest右键点击检出,如果是在别的机器上,可以通过IP地址来访问例如svn://192.168.1.100
14、 如图所示,表明我们已经成功的下载到服务器上的资源
15、 下面来测试一下同时有2个客户端能不能互相更新服务器上的资源呢?建立一个文件夹SVNProject重复上面的操作检出服务器的资源。
16、 我们修改SVNProject文件夹中的文本文件,如图所示
17、 点击提交后,选中被提交的文件,输入用户名密码,此时警告的图标就变成成功的图标了
18、 这时打开SVNTest文件夹查看文件内容,并没有变化是因为,客户端没有更新服务器端的资源
19、 右键点击更新功能
20、 更新成功
21、 查看更新的结果
总结:这样可以良好的控制多个客户端同时操作一个工程,节约了大量的时间,作为团队开发这是一种不可缺少的软件,而且目前非常的流行。当然如果在以上任何一个环节关闭了命令行的情况下,服务器就断开了连接,客户端就不能工作了,下面在给大家介绍一种更为完善的是使用方法。
每次开启服务器都要持久的使用命令行,这样有些烦琐,因此我们使用windows下自带的创建服务工具,为版本库创建一个服务,这样每次开机启动这个服务,客户端就可以直接提交,更新数据了。
使用方法
1、 基本配置和前面讲过的内容是一样的,在这里略过。。。
2、 进入命令行创建服务
sc create svnservice binPath= “d:\subversion\svnserve.exe –service –root e:\svn” displayname= subversion depend= Tcpip start= auto
解释一下各种参数
sc:是windows自带的创建服务工具
create:代表创建服务 反之delete代表删除服务
svnservice:表示服务的名字,要记好,以后删除时也要用到
binpath:指定svnserve.exe文件的路径因为服务要从这个工 具去启动版本库
--service:表示来自服务去启动版本库
--root:表示版本库所在跟路径
displayname:在管理工具中服务文件夹下显示服务的名字
depend:服务的模式
start:开机自动启动服务
3、 创建好服务以后第一次启动的时候需要进入管理工具->服务找到我们刚才创建好的服务,然后手动的启动随之以后可以直接访问使用了。
4、 删除服务
在命令行输入:sc delete svnservice(服务的名字)
知识扩展:
1、如果我们要想让一个服务控制多个版本库我们应该如何呢?
也就是说我们不能把版本库直接放在跟路径下,而是在根路径下新建多个文件夹,每个文件夹里面创建版本库,这样可以使得一个服务器下有多个版本工程,可以有效的将所有的项目集中到一起进行团队开发。
2、客户端访问服务器上某个资源时候直接在URL后面指定某个项目名称就可以了
六、 在windows上利用Apache访问SVN
引言:我们以往使用Subversion无论是从命令行启动服务还是创建 服务后自动开启,都是使用的svn:// 协议,只局限于内部网 络之间资源共享,下面将使用http://协议访问apache再访问 版本库。
好处:
1、 你可以在不安装Subversion客户端的情况下,使用浏览器来浏览版本库中的内容。这将使得更大范围的用户可以访问你的数据。
2、 可以支持apache加密验证机制。
3、 Apache是非常的稳定和安全,因此你的版本库自然而然地拥有同样的安全性,包括SSL加密。
4、 可以从公网访问服务器上资源,下载到本地进行操作。
具体操作:
1、 目前windows下的subversion只能跟Apache2.0.x配合,不能用于Apache2.2.x,在这里我们采用Apache_2.0.59版本,可以到www.apache.org下载并且安装
2、 安装Subversion(略)
3、 将Subversion\bin中的mod_dav_svn.so,mod_authz_svn.so文件复制到Apache服务器的modules路径下
4、 将Subversion\bin中的libeay32.dll文件复制到Apche服务器的bin路径下
5、打开Apache配置文件httpd.conf找到以下两行
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
去掉前面的#,然后所有LoadModule的后面添加下面两行
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
6 、然后在最后加上如下代码
具体解释:
<Location /svn/TestSystem> :意味着可以通过像这样的 http:/localhost/svn/TestSystem来访问Subversion版本库
DAV svn :告诉Apache哪个模块负责服务像那样的url--在这里就是Subversion模块
SVNParentPath e:\svn :告诉Subversion在目录e:\svnN下寻找版本库
AuthType Basic :启用基本的验证,比如用户名/密码对
注:必须要创建一个密码验证文件
由于Apache/bin目录已经存在于系统环境变量中所以在任何地方都可以使用htpasswd工具.
htpasswd是创建用户的工具
-c 表示创建
-b 表示密码随用户一起创建
jiedeng 表示用户名
810817 表示密码
然后又追加了一个用户
AuthName "用户验证"
当一个验证对话框弹出时,告诉用户这个验证是用来做什么的
AuthUserFile e:\svn\pas\password
指定用户验证的加密文件路径
AuthzSVNAccessFile D:\svnaccessfile
指定D:\svnaccessfile来限定各个用户或组在版本库中目录的访问权限
Require valid-user
限定用户只有输入正确的用户名及密码后才能访问这个路径
7、重新启动Apache服务器,测试HTTP协议访问版本库
第一种方法:进入DOS系统,例如E盘下
使用svn命令 参数 co请求服务器端资源
第一次输入的密码可以任意,但是接下来的用户名和密码必须输入正确才可以获取资源到本地。
第二种方法:
1、新建一个文件夹名字任意,右键进入检出功能
2、将原来的svn://改为http://,然后输入访问apache的路径和端口,别忘了输入svn虚拟文件夹名称,还要指定访问的资源名称。
3、输入用户名称和密码,然后就可获得服务器资源
8、知识扩展
按照上述的过程设计SVN根路径下有2个项目中用户登陆时使用的帐号和密码都在一个文件中,也就是说能有打开项目1的权限就可以打开项目2,反之也可以,这样应用于团队开发,权限的分配过大了些,现在我们位每一个项目都指定各自独立的帐号和密码组
1、 将 SVN根路径下的PWD文件夹删除
2、 修改Apache的配置文件,稍微有些改动
访问名字改变了 http://localhost/svn/TestSystem
原来的SVNParentPath改为了SVNPath表示单个项目
密码文件放在了版本库中
3、 为第一个项目创建密码文件,创建一个用户
4、 为第二个项目创建密码文件,创建一个用户
5、操作完成,现在2个项目中分别有自己使用的帐号密码文件,缩小的被越权访问的权限。
分享到:
相关推荐
**SVN 客户端与 Web 客户端详解** SVN(Subversion)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的版本。它允许团队成员协作开发,跟踪文件更改,合并代码,并轻松回溯到任何历史版本。...
【标题】:“svn插件myeclipse+svn插件” 【描述】:“svn 插件 myeclipse 插件文件+安装方法在压缩包内” 本文将深入探讨如何在MyEclipse集成开发环境中安装和使用Subversion(SVN)插件,以便更有效地进行版本...
### SVN服务用svnsync命令实现双机热备 #### 概述 在软件开发过程中,版本控制系统(Version Control System, VCS)是必不可少的工具之一。Subversion(SVN)作为一款广受欢迎的集中式版本控制系统,在企业级项目...
将文件解压缩到 C:\ 下,将解压缩后的 svn-win32-1.7.2 文件夹名改为 svn,然后将 C:\svn\bin 加入到系统的 PATH 环境变量中,即可开始使用。 将 svnserve.exe 设置为系统服务: sc create svn binpath= "C:\svn\...
RapidSVN是一款轻量级且用户友好的可视化Subversion(SVN)客户端,专为开发者和团队协作设计。Subversion是一种版本控制系统,用于管理软件项目中的文件和目录的更改历史,使得多人协同开发变得更加高效和有序。...
在软件开发过程中,版本控制系统是不可或缺的工具,其中Subversion(简称svn)是广泛应用的一种集中式版本控制系统。本文将深入探讨如何获取svn的最新版本号,并介绍一些常用的svn命令。 首先,获取svn的最新版本号...
**Visual Studio 2022 SVN 插件详解** 在软件开发过程中,版本控制是至关重要的环节,它帮助团队协作并跟踪代码的变化。Subversion(简称SVN)是一款流行的开源版本控制系统,而AnkhSVN则是一个针对Microsoft ...
在使用Subversion(SVN)版本控制系统管理代码时,`.svn`文件夹是SVN用于存储元数据的地方,包括版本信息、工作副本配置等。这些文件夹对于SVN的正常运行至关重要,但有时它们可能会占用大量的磁盘空间,或者在不...
VS2019 SVN插件是Visual Studio 2019开发者为了集成版本控制系统Subversion(SVN)而设计的一款工具。Subversion是一款开源的版本控制系统,它允许开发者跟踪和管理源代码的变化,便于团队协作和项目管理。VS2019 ...
在IT行业中,版本控制系统是开发团队协作的重要工具,其中Subversion(简称svn)是一种广泛应用的集中式版本控制系统。本文将详细讲解如何进行“svn账号密码找回”以及“本地svn账户查看”的操作。 首先,让我们来...
在IT行业中,版本控制系统是开发团队协作的重要工具,Subversion(简称svn)就是其中的一款广泛应用的开源版本控制系统。本文将详细讲解如何解决“svn无法清理、上传、下载”的问题,以及涉及的SQLite3数据库相关...
在软件开发过程中,版本控制系统扮演着至关重要的角色,其中Subversion(简称SVN)作为一款开源的集中式版本控制系统,被广泛应用于项目管理之中。然而,在使用SVN的过程中,用户可能会遇到一个常见的问题:如何去除...
AnkhSvn2019就是这样一个针对VS2019的插件,它专门为Visual Studio集成Subversion(Svn)版本控制系统,使得开发者在VS2019内部就能完成版本控制操作。 AnkhSvn是一款开源的、免费的Visual Studio插件,它使得开发...
【Myeclipse2017 SVN插件】是一款专为Myeclipse 2017集成开发环境设计的版本控制系统工具,它使得开发者能够在Myeclipse中直接进行SVN(Subversion)的操作,如代码的版本控制、提交、更新、解决冲突等。SVN是分布式...
svn目录权限设置详解 随着软件开发的日益复杂,版本控制系统的重要性变得更加明显。Subversion(SVN)是一种流行的版本控制系统,能够帮助开发者 efektively 管理项目的版本变更。但是,SVN的权限设置一直是开发者...
SVN(Subversion)是一种广泛使用的版本控制系统,用于管理文件和目录的历史版本,便于团队协作和项目管理。在Windows平台上,有许多SVN客户端可供选择,其中SlikSVN是一款流行的轻量级绿色版本,尤其适合那些希望...
在IT行业中,版本控制系统是开发团队协作的重要工具之一,Subversion(简称SVN)就是其中广泛应用的一款。SVN能够帮助开发者追踪代码的变化,合并不同人的修改,并管理项目的多个版本。然而,有时候我们可能需要断开...
centos 7.9服务器 离线 搭建svn服务器 ,该文章适用于 开发人员 实施人员 项目经理用于项目文档管理 代码管理,而不指定如何在centos7.9环境下离线搭建svn服务器,因为大多数的网站只是介绍yum install 的方式,但是...
Jenkins SVN Publisher Plugin是Jenkins生态系统中的一个重要组件,主要用于自动化构建过程中的版本控制集成。它允许用户在Jenkins持续集成服务器完成构建后,自动将生成的成果物发布到Subversion(SVN)仓库中,...
标题 "取消已设置为SVN的文件夹(清理SVN标志)" 涉及的知识点主要集中在版本控制系统Subversion(SVN)的管理和清理上。Subversion是一种广泛使用的集中式版本控制系统,它用于跟踪文件和目录的变更,便于团队协作...