原文:快速学会搭建SVN服务器

SVN是一个版本控制工具,常用于我们软件开发项目中,用来管理我们团队共同使用的代码,文档等历史版本的管理,保持代码的更新,避免混乱。

需要工具:

svn安装程序:免费下载

apache的http服务器,免费下载

svn的eclipse插件,免费下载

TortoiseSVN图形化工具64位和32位版本,免费下载

安装svn及基本DOS操作:

首先安装svn是非常的简单,就像我们安装其他的windows软件是一样的,安装完成后安装程序自动将我们svn安装目录下的bin目录加载在了我们的环境变量里。所以我们可以直接在我们的cmd窗口内运行我们的svn命令。我们先来学习第一个命令,创建一个svn仓库,我们先在E盘下创建一个目录
E:\\svn\db   这个目录就是我们svn的仓库,我们日后所以上传都svn上的资源其实都是存在这个目录下的,只是格式已经被svn给加密我们无法直接识别,就像是用数据库管理我们数据一样。我们在cmd里输入:

svnadmin create E:\\svn\db

这个就是将我们刚才的目录指定为存储仓库。然后我们运行我们的svn服务在cmd内输入:

svnserve –d –r E:\\svn\db

该命令含义为让 我们的SVN 将此目录作为仓库,并侦听客户端的请求。其中-d 的作用为后台模式,而-r
的作用为指定服务器的仓库路径。现在我们的svn服务器就已经启动成功了,是不是很简单,然后我们开始向我们的svn上上传我们的资源。我们再次打开一个cmd窗口,刚才的cmd窗口不能关闭,在cmd内跳转到我们的资源文件夹内执行:

svn import svn://localhost

这个时候会出现一个错误,命令执行失败,因为我们需要指定打开svn日志信息的工具,这里我们在环境变量里增加一个增加一个键名为SVN_EDITOR
键值为notepad的记录。我们再次运行刚才的命令,这时我们的日志文件自动用记事本打开,我们直接关掉输入c继续操作。再次出现认证失败的信息,这次其实是我们已经这说明我们已经连接到了 SVN 服务器,但是默认是svn服务器是不允许匿名访问的,我们打开我们的E:\svn\db目录改变一下
SVN 的认证权限。用文本编辑器打开 svnserve.conf 文件找到第 12 行:anon-access = read,这表示匿名用户的访问权限是读,并且大家注意到,该行前面有一个警号:#。这表示该行是被注释掉的。我们将注释去掉,并且加上一行anon-access = write。我们打开一个cmd开启svn服务再开启一个cmd执行上面的上传操作,是不是操作成了,我们所在文件夹目录下的文件是不是都上传了上去。

这样大家是不是觉得svn上的管理太乱了,没关系svn是支持虚拟目录的

svn mkdir svn://localhost/xunimulu

这样便可以帮助我们在svn上创建一个虚拟的文件夹。我们如果想将svn上的文件下载下来如何?在svn的操作中这个叫做检出。checkout命令(检出):将命令行当前目录转到该目录,输入如下命令:

svn checkout svn://localhost/xunimulu

这样就可以将这个文件夹下的资源下载到们的当前目录,如果我们修改文件后,需要与服务器上的文件进行同步,我们需要执行

svn commit test2.txt

如果执行该行出现错误,则我们清除锁定,输入:svn
cleanup

SubVersion的密码验证

匿名访问我们的svn服务器是不是太危险了,我们接下来就是使用svn自带的配置文件来对我们的svn进行权限控制,我们用文本编辑器来打开刚才的
svnserve.conf配置 文件将 password-db = passwd 之前的#号删掉,在用文本编辑器打开passwd 文件加入账号密码形式为username=password

注意:在一次登录后,SVN 会将我们的登录信息保存起来存放在硬盘上的文件中,其存放位置为: C:\Documents and Settings\[你的登录系统用户名]  \Application Data\Subversion,如果想要删除该信息,只需要将该目录中的 auth 文件夹删除即可。

图形化工具安装

刚才的dos操作是不是很不方便,我们的下载软件中包括一个图形化工具,非常简单实用,大家可以安装上用一下,安装非常简单。安装完成后我们的右键菜单中多出了很多svn的操作。还是以上的功能,只是变成了图形化界面操作,大家可以自己体验一下,在此不再赘余。

整合apache服务器

刚才大家肯定也注意到我们的svn服务器只能一直依托一个cmd窗口,这样是不是很不方便,接下来我们让我们的svn来整合apache的httpd服务器,首先安装apache
的http服务器。它的默认端口号是80如果有端口号冲突,我们的服务器是无法正常启动的,只需要修改配置文件更改端口号重启即可。安装完成后在浏览器输入:http://localhost如果跳转到apache的网页则说明安装成功。然后我们开始进行整合,首先到svn安装目录的bin目录下找到
mod_authz_svn.so 与 mod_dav_svn.so 两个文件,拷贝到 Apache 的安装目录下的modules 子目录中。然后修改apache的配置文件,打开apache安装目录下的,conf 目录,用文本编辑器打开 httpd.conf 文件(这个文件是 Apache 的配置文件,非常重要)找到第 145 行和 146 行。将前面的#号去掉,不能有空格,然后再增加如下两行内容:

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

表示将我们之前拷贝的模块导入到 Apache 中,转到该文件的最后,增加如下内容:

<Location /svn>

DAV svn

SVNParentPath e:\\svn\db  #svn仓库主目录

</Location>

重新启动 Apache,在浏览器中输入如下地址:http://localhost/svn我们就已经将svn跟apache服务整合成功,这样我们只需要启动apache服务器就相当于启动了我们的svn服务器。

整合apache密码设置

svn的密码认证也是非常的弱,在这里我们也与apache整合,我们将刚才的apache配置文件最后加的内容修改为一下内容:

<Location /svn>

DAV svn

SVNParentPath  e:\\svn\db  #svn仓库主目录

AuthType Basic

AuthName "Subversion test"

AuthUserFileE:/passwd/passwords

Require valid-user

</Location>

这些信息的内容分别是:

AuthType 表示验证类型,这里我们采用 BASIC 即基本方式,也是最常用的验证方式。AuthName
表示出现登录对话框时,窗口的标题名。AuthUserFile 表示用户登录信息的存放文件,这里我们将该文件保存为 E:/passwd/passwords,目前该文件还不存在,不过不要着急,我们稍后就会创建该文件。#保存用户名和密码,这个文件需要用Apache的htpasswd工具创建。Require
valid-user  表示只有认证的用户才能访问,否则匿名用户也可以访问。首先创建E:/passwd文件夹

打开cmd命令跳转到apache的安装目录下的bin目录下执行htpasswd –c E:/passwd/passwords 
hello (hello是用户名)接下来的提示要求输入 hello 用户的密码,其中密码默认使用 MD5 方式加密。

现在我们再创建一个用户 google,密码也为 world。方式同前。在命令行输入:htpasswd
E:\passwd\passwords google因为该用户信息文件之前已经创建好,所以这里不必再使用-c 参数

在浏览器地址栏输入http://localhost/svn则需要密码验证

SubVersion 整合 Eclipse

我们只需要将我们的插件包放到eclipse的dorpin目录下重启eclipse即可。

友情提示:转载请注明出处【作者:idlear
 博客:
http://blog.csdn.net/idlear

快速学会搭建SVN服务器的更多相关文章

  1. 【SVN】CentOS7.0下搭建SVN服务器

    SVN服务器搭建 最近接手了天赋吉运的SVN项目管理,那么学会搭建SVN服务器就成为了必须的技能.这篇文章就来讲一讲在CentOS7.0下如何搭建SVN服务器 1,下载安装SVN版本 yum inst ...

  2. Ubuntu 14.04快速搭建SVN服务器及日常使用【转】

    转自:http://www.linuxidc.com/Linux/2015-05/117735.htm 1.介绍  Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务 ...

  3. Ubuntu 14.04快速搭建SVN服务器及日常使用

    1.介绍  Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可以很方面恢复到以前的版本,并可以查看数据更改 ...

  4. centos7 搭建svn服务器&客户端的访问&备份迁移

    当今用于版本控制的软件程序主要的有svn和git,其它软件咱不熟悉,今天记录下搭建svn服务器和svn客户端使用: 使用环境:虚拟机为centos7系统,svn服务器安装在centos7系统平台上,s ...

  5. [源码管理] Windows下搭建SVN服务器

    前文所述SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效 ...

  6. 如何搭建SVN服务器,详细安装步骤。

    SVN服务器端安装 下载: VisualSVN是一款图形化svn服务器.官网 http://www.visualsvn.com/server/ 下载地址: http://www.visualsvn.c ...

  7. CentOS 7搭建SVN服务器

    安装步骤如下: 1.yum install subversion 2.查看安装版本 svnserve --version 3.创建SVN版本库目录 mkdir -p /var/svn/svnrepos ...

  8. Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法

    首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion   ...

  9. 记录第一次搭建svn服务器

    搭建svn服务器需要另外的软件, 在此以32位的为例: 安装过程非常简单, 一直下一步下一步确定就好了, svn安装完毕再安装中文语言包, 安装完成后可以在设置里面找到中文简体选择就OK了 主要记录一 ...

随机推荐

  1. PHP - 接口 - 单一接口

    /* * 接口的使用 */ //定义接口 interface IPerosn{ public function eat(); public function water(); } //定义继承自接口的 ...

  2. eclipse 默认jdk 的设置 eclipse.ini -vm 参数

    eclipse 的配置文件 eclipse.ini 不仅仅可以设置eclipse的堆栈内存大小,也可设置默认使用的jdk版本. 一.现有个eclipse 默认启动jdk版本是jdk1.5,需更改为1. ...

  3. Java byte数据类型详解

    public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b ...

  4. 平衡树 - 红黑树(JQuery+Js+Canvas版本的,帮助大家理解)

    红黑树 1.红黑树介绍 年写的一篇论文中获得的.它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的:它可以在O(log n)时间内做查找,插入和删除,这里的n是树中元素的数目. 2 ...

  5. 摘记:IIS长时间任务超时处理

    1.如果是在客户端调用Webservice,首先设置客户端超时, SoapHttpClientProtocol.Timeout = 3600 * 1000;//单位为秒,这是设置了一个小时 2.如果站 ...

  6. linux+Qt程序如何打包发布

    源地址:http://zhidao.baidu.com/link?url=UTWEoXS21B4p1L5LJmYgGBMAr0dTdXfzmaGbWeltnwQLA3Uc9_K9RcDQFFIArbx ...

  7. Effective C++_笔记_条款12_复制对象时勿忘其每一个成分

    (整理自Effctive C++,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 编译器会在必要时候为我们的classes创建copying函数, ...

  8. JS - 图片放大器

    下载地址:http://www.lanrentuku.com/js/tupian-1170.html

  9. spring mvc ModelAndView向前台传值

    今天在做项目的时候遇到一个问题,把第一个页面保存的id传到第三个页面中去用,原来是在controller层加了一个全局变量控制的,但是后来发现这个变量实现不了我要的功能,于是查了一下,原来ModelA ...

  10. java输出空心菱形

    package com.zsh; import java.util.Scanner; public class Test08 { public static void main(String[] ar ...