`
高级java工程师
  • 浏览: 409443 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
一、    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 client svn客户端

    **SVN 客户端与 Web 客户端详解** SVN(Subversion)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的版本。它允许团队成员协作开发,跟踪文件更改,合并代码,并轻松回溯到任何历史版本。...

    svn插件myeclipse+svn插件

    【标题】:“svn插件myeclipse+svn插件” 【描述】:“svn 插件 myeclipse 插件文件+安装方法在压缩包内” 本文将深入探讨如何在MyEclipse集成开发环境中安装和使用Subversion(SVN)插件,以便更有效地进行版本...

    svn服务用svnsync命令双机热备

    ### SVN服务用svnsync命令实现双机热备 #### 概述 在软件开发过程中,版本控制系统(Version Control System, VCS)是必不可少的工具之一。Subversion(SVN)作为一款广受欢迎的集中式版本控制系统,在企业级项目...

    svn-win32-1.7.2.zip (win32svn) [SVN 绿色版]

    将文件解压缩到 C:\ 下,将解压缩后的 svn-win32-1.7.2 文件夹名改为 svn,然后将 C:\svn\bin 加入到系统的 PATH 环境变量中,即可开始使用。 将 svnserve.exe 设置为系统服务: sc create svn binpath= "C:\svn\...

    RapidSVN:轻量级、可视化SVN客户端RapidSVN-0.13.0.8249-PortableSoft

    RapidSVN是一款轻量级且用户友好的可视化Subversion(SVN)客户端,专为开发者和团队协作设计。Subversion是一种版本控制系统,用于管理软件项目中的文件和目录的更改历史,使得多人协同开发变得更加高效和有序。...

    获取svn最新版本号示例 以及svn常用命令

    在软件开发过程中,版本控制系统是不可或缺的工具,其中Subversion(简称svn)是广泛应用的一种集中式版本控制系统。本文将深入探讨如何获取svn的最新版本号,并介绍一些常用的svn命令。 首先,获取svn的最新版本号...

    VS2022 SVN 插件

    **Visual Studio 2022 SVN 插件详解** 在软件开发过程中,版本控制是至关重要的环节,它帮助团队协作并跟踪代码的变化。Subversion(简称SVN)是一款流行的开源版本控制系统,而AnkhSVN则是一个针对Microsoft ...

    清楚svn目录下生成的.svn文件夹

    在使用Subversion(SVN)版本控制系统管理代码时,`.svn`文件夹是SVN用于存储元数据的地方,包括版本信息、工作副本配置等。这些文件夹对于SVN的正常运行至关重要,但有时它们可能会占用大量的磁盘空间,或者在不...

    VS2019 svn插件

    VS2019 SVN插件是Visual Studio 2019开发者为了集成版本控制系统Subversion(SVN)而设计的一款工具。Subversion是一款开源的版本控制系统,它允许开发者跟踪和管理源代码的变化,便于团队协作和项目管理。VS2019 ...

    svn账号密码找回,本地svn账户查看

    在IT行业中,版本控制系统是开发团队协作的重要工具,其中Subversion(简称svn)是一种广泛应用的集中式版本控制系统。本文将详细讲解如何进行“svn账号密码找回”以及“本地svn账户查看”的操作。 首先,让我们来...

    svn清理sqlite3

    在IT行业中,版本控制系统是开发团队协作的重要工具,Subversion(简称svn)就是其中的一款广泛应用的开源版本控制系统。本文将详细讲解如何解决“svn无法清理、上传、下载”的问题,以及涉及的SQLite3数据库相关...

    如何去掉svn标记

    在软件开发过程中,版本控制系统扮演着至关重要的角色,其中Subversion(简称SVN)作为一款开源的集中式版本控制系统,被广泛应用于项目管理之中。然而,在使用SVN的过程中,用户可能会遇到一个常见的问题:如何去除...

    实例方式讲解svn目录权限设置

    svn目录权限设置详解 随着软件开发的日益复杂,版本控制系统的重要性变得更加明显。Subversion(SVN)是一种流行的版本控制系统,能够帮助开发者 efektively 管理项目的版本变更。但是,SVN的权限设置一直是开发者...

    myeclipse2017SVN插件

    【Myeclipse2017 SVN插件】是一款专为Myeclipse 2017集成开发环境设计的版本控制系统工具,它使得开发者能够在Myeclipse中直接进行SVN(Subversion)的操作,如代码的版本控制、提交、更新、解决冲突等。SVN是分布式...

    vs2019使用的AnkhSvn插件AnkhSvn2019

    AnkhSvn2019就是这样一个针对VS2019的插件,它专门为Visual Studio集成Subversion(Svn)版本控制系统,使得开发者在VS2019内部就能完成版本控制操作。 AnkhSvn是一款开源的、免费的Visual Studio插件,它使得开发...

    svn绿色windows版本,客户端,支持IntelliJ IDEA配置svn客户端环境

    SVN(Subversion)是一种广泛使用的版本控制系统,用于管理文件和目录的历史版本,便于团队协作和项目管理。在Windows平台上,有许多SVN客户端可供选择,其中SlikSVN是一款流行的轻量级绿色版本,尤其适合那些希望...

    清理SVN、断开SVN连接,工具

    在IT行业中,版本控制系统是开发团队协作的重要工具之一,Subversion(简称SVN)就是其中广泛应用的一款。SVN能够帮助开发者追踪代码的变化,合并不同人的修改,并管理项目的多个版本。然而,有时候我们可能需要断开...

    centos 7.9服务器 离线 搭建svn服务器

    centos 7.9服务器 离线 搭建svn服务器 ,该文章适用于 开发人员 实施人员 项目经理用于项目文档管理 代码管理,而不指定如何在centos7.9环境下离线搭建svn服务器,因为大多数的网站只是介绍yum install 的方式,但是...

    Jenkins SVN Publisher Plugins下载

    Jenkins SVN Publisher Plugin是Jenkins生态系统中的一个重要组件,主要用于自动化构建过程中的版本控制集成。它允许用户在Jenkins持续集成服务器完成构建后,自动将生成的成果物发布到Subversion(SVN)仓库中,...

    取消已设置为SVN的文件夹(清理SVN标志)

    标题 "取消已设置为SVN的文件夹(清理SVN标志)" 涉及的知识点主要集中在版本控制系统Subversion(SVN)的管理和清理上。Subversion是一种广泛使用的集中式版本控制系统,它用于跟踪文件和目录的变更,便于团队协作...

Global site tag (gtag.js) - Google Analytics