Windows7下 SVN Apache2 和TortoiseSVN的配置安装.docx
Windows7下 SVN Apache2 和TortoiseSVN的配置安装Windows7下 SVN、 Apache2 和TortoiseSVN的配置安装 一、SVN、 Apache2 和TortoiseSVN的简介 1、TortoiseSVN TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。 某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。不过 Subversion 并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。 TortoiseSVN 的特性 是什么让 TortoiseSVN 成为一个好的 Subversion 客户端?下面是一个简短的特性列表。 外壳集成 TortoiseSVN 与Windows 外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工作,不需要在每次使用版本控制功能时切换应用程序。 并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展开发,因此在其他程序可能集成的并不完整,例如重载图标可能不会显示。 重载图标 每个版本控制的文件和目录的状态使用小的重载图标表示,可以让你立刻看出工作副本的状态。 Subversion 命令的简便访问 所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。 因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性: 目录版本控制 CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个“虚拟”文件系统,可以追踪整个目录树的修改,文件和目录都是版本控制的,结果就是可以在客户端对文件和目录执行移动和复制命令。 原子提交 提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改。 版本控制的元数据 每个文件和目录都有一组附加的“属性”,你可以发明和保存任意的键/值对,属性是版本控制的,就像文件内容。 可选的网络层 Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion 的“高级”服务器是 Apache 网络服务器的一个模块,使用 HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏览等等。也有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自己的协议,可以轻松的用 SSH 封装。 一致的数据处理 Subversion 使用二进制文件差异算法展现文件的区别,对于文本(人类可读)和二进制(人类不可读)文件具备一致的操作方式,两种类型的文件都压缩存放在版本库中,差异在网络上双向传递。 高效的分支和标签 分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只是复制项目,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少并且相对固定的时间,以及很小的版本库空间。 良好的维护能力 Subversion 没有历史负担,它由一系列良好的共享 C 库实现,具有定义良好的 API,这使 Subversion 非常容易维护,可以轻易的被其他语言和程序使用。 2、Apache Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。 3SVN svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。 运行方式 svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。 svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是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、 2、双击exe 开始安装 3、点击next 4、选择I accept . 点击next 5、选择要安装的 6、点击next 7、安装进行中 8.安装完成 三、配置过程 在C:Program FilesSubversionbin目录下复制下面两个文件 mod_authz_svn.so mod_dav_svn.so 粘帖到C:Program FilesApache Software FoundationApache2.2modules, 然后我们再打开 C:Program FilesApache Software FoundationApache2.2confhttpd.conf文件. 找到 去掉前面的注释符号# 然后再下面添加 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so 注:我在添加后保存文件时出现问题 我的解决方法,先添加后另存为 到桌面, 然后删掉你面的httpd.conf 再把桌面上刚才复制的文件拷到C:Program FilesApache Software FoundationApache2.2conf下 模块的加载设置完成,下面我们要设置SVN的版本库目录,以使我们的apache能知道访问不同的URL的时候,它去哪里寻找这个URL所对应的SVN目录 在httpd.conf文件中,增加如下内容: <Location /svn/myproject> 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 </Location> 设置 <Location /svn> 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 FilesApache Software FoundationApache2.2conf下 上面使用了access.auth,和users.auth两个文件,我们后面创建。 方法一: 在e:创建svnroot 文件夹,然后通过svn的svnadmin命令创建数据仓库 svnadmin create E:svnrootmyproject 如果运行成功的话,什么也没有输出, 方法二: 在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 FilesApache Software FoundationApache2.2bin 目录下的 users.auth 复制粘贴到 E:svnrootmyprojectconf 目录下 重新启动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/ 访问会列出你项目的版本信息: