Windows7 下 SVN, Apache2 和 TortoiseSVN 的配置安装
一,SVN, Apache2 和 TortoiseSVN 的简 , 介
1,TortoiseSVN
TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越 时间的管理文件和目录.文件保存在中央版本库,除了能记住文件和目录的每次修改 以外,版本库非常像普通的文件服务器.你可以将文件恢复到过去的版本,并且可以 通过检查历史知道数据做了哪些修改,谁做的修改.这就是为什么许多人将 Subver sion 和版本控制系统看作一种”时间机器”. 某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专 门用来管理源代码树,并且具备许多与软件开发有关的特性 – 比如,对编程语言的 支持,或者提供程序构建工具.不过 Subversion 并不是这样的系统;它是一个通用 系统,可以管理任何类型的文件集,包括源代码.
TortoiseSVN 的特性
是什么让 TortoiseSVN 成为一个好的 Subversion 客户端?下面是一个简短 的特性列表.
外壳集成
TortoiseSVN 与 Windows 外壳(例如资源管理器)无缝集成,你可以保持在熟悉 的工具上工作,不需要在每次使用版本控制功能时切换应用程序. 并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以 工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中.你 必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展开发,因此在其 他程序可能集成的并不完整,例如重载图标可能不会显示.
重载图标
每个版本控制的文件和目录的状态使用小的重载图标表示,可以让你立刻看出工 作副本的状态.
Subversion 命令的简便访问
所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里 添加子菜单.
因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 S ubversion 本身的特性:
目录版本控制
CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个”虚拟”文件系统, 可以追踪整个目录树的修改,文件和目录都是版本控制的,结果就是可以在客户端对 文件和目录执行移动和复制命令.
原子提交
提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修 改.
版本控制的元数据
每个文件和目录都有一组附加的”属性”,你可以发明和保存任意的键/值对,属性 是版本控制的,就像文件内容.
可选的网络层
Subversion 在版本库访问方面有一个抽象概念, 利于人们去实现新的网络机制, Subversion 的”高级”服务器是 Apache 网络服务器的一个模块,使用 HTTP 的变 种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很大的 好处,可以直接使用服务器的特性,例如认证,授权,传输压缩和版本库浏览等等. 也有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自己的协议,可 以轻松的用 SSH 封装.
一致的数据处理
Subversion 使用二进制文件差异算法展现文件的区别, 对于文本(人类可读)和二 进制(人类不可读)文件具备一致的操作方式, 两种类型的文件都压缩存放在版本库中, 差异在网络上双向传递.
高效的分支和标签
分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只是 复制项目,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少并且相 对固定的时间,以及很小的版本库空间.
良好的维护能力
Subversion 没有历史负担,它由一系列良好的共享 C 库实现,具有定义良 好的 API,这使 Subversion 非常容易维护,可以轻易的被其他语言和程序使用.
2,Apache
Apache 是世界使用排名第一的 Web 服务器软件. 它可以运行在几乎所有广泛使用的
计算机平台上.
3.SVN
svn(subversion)是近年来崛起的版本管理工具,是 cvs 的接班人.目前,绝大多数开 源软件都使用 svn 作为代码版本管理软件.
运行方式
svn 服务器有 2 种运行方式:独立服务器和借助 apache.2 种方式各有利弊. svn 存储版本数据也有 2 种方式:BDB 和 FSFS.因为 BDB 方式在服务器中断 时,有可能锁住数据(我在搞 ldap 时就深受其害,没法根治) ,所以还是 FSFS 方式 更安全一点.
二 , 安装过程
1, SVN 的安装 , 到
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100 下载软件
2,双击下载的程序,进行安装
3,点击是
4,点 next
5,选择 I accept the agreement ,点击 next
6,点击 next
7,选择安装路径,可以默认
8,选择 Start Menu Folder ,可以默认
9,点击 next
10,点击 install
11,安装等待中
12,Some Information ,点击 next
13,Finish
2,Apache 的安装过程
在网址 http://www.apache.org/dist/httpd/binaries/win32/ 里下载
1,点击 exe ,开始安装,点击 next
2,选择 I accept…. 点击 next
3,Read the Information 点击 next
4
在设置 Netwotk Domain 和 Servr Name 的时候,没有自己的域名可以设置为 localhost,Email 填你 自己的 Email 下面两个选择项 for All Users,on port 80, as a Service –Recommended.
only for Current User, on port 8080, when started Manually. 意思是 为所有用户安装程序和快捷方式,端口 80,作为服务安装,推荐 仅为当前用户安装程序和快捷方式,端口 8080,启动 apache 服务手动启动 选择第一个注意 80 端口有没被占用,第二个则注意 8080 端口占用问题.
5,一般选择 Typical
6,选择安装路径.可以选择默认
7,点击 Install
9,安装进行中
10.安装完成
11,测试 在网页中输入 http://localhost/ 如果安装成功会出现下面的界面
3,ortoisesvn 的安装过程
1,http://tortoisesvn.net/downloads 下载
2,双击 exe 开始安装
3,点击 next
4,选择 I accept …. 点击 next
5,选择要安装的
6,点击 next
7,安装进行中
8.安装完成
三,配置过程
在 C:\Program Files\Subversion\bin\目录下复制下面两个文件 mod_authz_svn.so mod_dav_svn.so 粘帖到 C:\Program Files\Apache Software Foundation\Apache2.2\modules, 然后我们再打开 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf 文件.
找到
去掉前面的注释符号# 然后再下面添加
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
注:我在添加后保存文件时出现问题
我的解决方法,先添加后另存为 到桌面, 然后删掉你面的 httpd.conf 再 把 桌 面 上 刚 才 复 制 的 文 件 拷 到 C:\Program Files\Apache Software Foundation\Apa
che2.2\conf\下(即刚才删掉的那个目录里)
模块的加载设置完成,下面我们要设置 SVN 的版本库目录,以使我们的 apache 能知道访问不同的 URL 的时 候,它去哪里寻找这个 URL 所对应的 SVN 目录 在 httpd.conf 文件中,增加如下内容: DAV svn
# 设置存取权限控制文件所在地
SVNPath E:/svnroot/myproject AuthzSVNAccessFile E:/svnroot/myproject/conf/access.auth
先尝试匿名操作,如有必要再转向用户认证
Satisfy Any Require valid-user
如何验证用户
AuthType Basic AuthName “Subversion repositories” AuthUserFile E:/svnroot/myproject/conf/users.auth
Require valid-user
设置
DAV svn
解释
意思是 Subversion 版本库的 URL 是 http://MyServer/svn/ 告诉 Apache 是哪个模块响应那个 URL 的请求-此刻是 Subversion 模块.
SVNListParentPath on
对于 Subversion1.3 或者更高版本,这个指示表示显示所有 SVNParentPath 下的版本库.
SVNParentPath D:\SVN AuthType Basic AuthName “Subversion repositories” AuthUserFile passwd AuthzSVNAccessFile Require valid-user
告诉 Subversion 需要查看的版本库位于 D:\SVN 之下 激活基本认证,就是用户名/密码 用来说明何时弹出要求用户输入认证信息的认证对话框
指定使用的认证密码文件 位置 Subversion 版本库的访问控制文件的路径 指定只有输入了正确的用户/密码的用户可以访问 URL
保存”httpd.conf”并退出,这里 Apache2 的配置告一段落.
注:我在添加后保存文件时出现问题
我的解决方法,先添加后另存为 到桌面, 然后删掉你面的 httpd.conf 再 把 桌 面 上 刚 才 复 制 的 文 件 拷 到 C:\Program Files\Apache Software Foundation\Apa che2.2\conf\下(即刚才删掉的那个目录里)
上面使用了 access.auth,和 users.auth 两个文件,我们后面创建. 方法一: 在 e:\创建 svnroot 文件夹,然后通过 svn 的 svnadmin 命令创建数据仓库
svnadmin create E:\svnroot\myproject 如果运行成功的话,什么也没有输出, 方法二: 在 e 盘下新建 E:\svnroot\下创建 myproject 文件夹,通过 TortiseSVN 来创建. 选中 myProject 右键选择 TortiseSVN ,选择二级菜单 create repository here 在这个目录创建数 据仓库
在创建的 myProject 文件夹下面我们会发现多了几个文件夹和文件,打开 conf 文件夹,然后使用 editplus(如果没有安装 editplus,可以用记事本或者写字板打开)再打开 svnserve.conf 文件,找到如 下行# password-db = passwd,然后把它前面的#去掉,表示 myProject 是需要密码验证的.再打开 conf 文件夹下面的 passwd 文件,用文本编辑器打开,在[users]下面加上我们需要的用户和密码,比如
[users] admin=admin yufangwen=123456 我们就启动了两个用户,一个叫 admin,密码是 admin,一个叫 yufangwen,密码是 123456. 然后保存为 passwd 文件. 我们再建一个文件,叫 access.auth,这个文件是设置访问权限的,里面内容如下: [myproject:/]
admin = rw
[myproject:/module1] yufangwen=rw admin=rw rm 表示可读可写,这表示,myproject 下面的所有子目录 admin 都是有权限读写的,但是 tom 只有权限读 写此项目下面的 module1 目录,这个各自的访问权限就分的更细致了. Cmd 命令行模式下,到 apache 安装目录下的 bin 目录下 操作如下 进入 apache 安装目录下的 bin 目录用以下命令
在后面接着输入 <htpasswd -cb users.auth admin admin 即:
随后会出现以下代码
为 admin 用户设置好密码,创建第一个用户时创建文件,添加第二个用户则不用创建,具体命令参数有细 微区别,请注意-cb
此
时
把
C:\Program Files\Apache Software Foundation\Apache2.2\bin
目
录
下
的 users.auth 复制粘贴到 E:\svnroot\myproject\conf 目录下 重新启动 apache 服务在浏览器中输入以下地址 http://localhost/svn/myproject/ 访问出现
表示配置成功,客户端 TortiseSVN 好了,部署第一个项目: 现在 E 盘根目录下新建 test 文件夹 在 cmd 命令行
配合使用
首先如果命令行显示
则输入 回车
输入 svn import E:\test\ 如下所示
file:///E:/svnroot/myproject/ -m “test import”
注意: 1.(E:\test\ ) 是你要部署的项目 2.(file:///E:/svnroot/myproject/)这是你建立版本控制的仓库路径 立版本控制的仓库路径 最后:访问 http://localhost/svn/myproject/ 访问会列出你项目的版本信息:
转载请注明:苏demo的别样人生 » Windows7下 SVN、 Apache2 和TortoiseSVN的配置安装 设置