欢迎来到天天文库
浏览记录
ID:37640457
大小:2.04 MB
页数:26页
时间:2019-05-27
《Windows+SVN+Apache+TortoiseSVN配置安装+svn版本库迁移》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
Windows下SVN、Apache和TortoiseSVN的配置安装一、SVN、Apache和TortoiseSVN的简介1、TortoiseSVNTortoiseSVN是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、ApacheApache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。3.SVNsvn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。运行方式svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据(我在搞ldap时就深受其害,没法根治),所以还是FSFS方式更安全一点。二、安装过程(1)、SVN的安装1.下载安装软件http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=11151&expandFolder=11151&folderID=91 或者http://subversion.apache.org/packages.html下载相应的安装包(Setup-Subversion-1.6.13.msiforwindows32)2、双击下载的程序,进行安装3、点击是 4、点next5,选择Iaccepttheagreement,点击next6、点击next 7、选择安装路径,可以默认8、选择StartMenuFolder,可以默认 9,点击next10、点击install 11、安装等待中12、SomeInformation,点击next 13、Finish(2)、Apache的安装过程下载安装软件http://www.apache.org/dist/httpd/binaries/win32/下载 1、点击exe,开始安装,点击next2、选择Iaccept….点击next3、ReadtheInformation点击next 4、在设置NetwotkDomain和ServrName的时候,没有自己的域名可以设置为localhost,Email填你自己的Email下面两个选择项forAllUsers,onport80,asaService--Recommended.意思是为所有用户安装程序和快捷方式,端口80,作为服务安装,推荐onlyforCurrentUser,onport8080,whenstartedManually.意思是仅为当前用户安装程序和快捷方式,端口8080,启动apache服务手动启动选择第一个注意80端口有没被占用,第二个则注意8080端口占用问题。 5、一般选择Typical6、选择安装路径。可以选择默认7、点击Install 9、安装进行中 10.安装完成11、测试在网页中输入http://localhost/如果安装成功会出现下面的界面 (3)、Tortoisesvn的安装过程1、下载安装软件下载地址:http://tortoisesvn.net/downloads2、双击exe开始安装3、点击next 4、选择Iaccept….点击next5、选择要安装的 6、点击next7、安装进行中 8.安装完成 三、配置过程(1)第一步在C:ProgramFilesSubversionbin目录下复制下面两个文件mod_authz_svn.somod_dav_svn.so粘帖到C:ProgramFilesApacheSoftwareFoundationApache2.2modules,然后再打开C:ProgramFilesApacheSoftwareFoundationApache2.2confhttpd.conf文件.找到去掉前面的注释符号#然后再下面添加LoadModuledav_svn_modulemodules/mod_dav_svn.soLoadModuleauthz_svn_modulemodules/mod_authz_svn.so (2)第二步模块的加载设置完成,下面我们要设置SVN的版本库目录,以使我们的apache能知道访问不同的URL的时候,它去哪里寻找这个URL所对应的SVN目录在httpd.conf文件中,增加如下内容:例子一:DAVsvn#设置存取权限控制文件所在地SVNPathE:/svnroot/myprojectAuthzSVNAccessFileE:/svnroot/myproject/conf/access.auth先尝试匿名操作,如有必要再转向用户认证SatisfyAnyRequirevalid-user如何验证用户AuthTypeBasicAuthName"Subversionrepositories"AuthUserFileE:/svnroot/myproject/conf/users.authRequirevalid-user例子二:(MyApacheSVNhttp.conf:)###SVNDAVsvnSVNListParentPathonSVNParentPathC:svnrootAuthzSVNAccessFileC:/svnroot/ApacheSVN/conf/authz#SatisfyAnyRequirevalid-userAuthTypeBasicAuthName"ApacheSVN测试版本库"AuthUserFileC:/svnroot/ApacheSVN/conf/users.authRequirevalid-user#下面表示允许匿名读取##Requirevalid-user# 例子三:(CallCenterSVNhttpd.conf配置:)###SVN#表示可通过URL(http://hostname/svn)来访问Subversion版本库,#注意红字部分与配置中所写的要一样,而且大小写是区分的。DAVsvn#让Apache知道负责此部分的模块是哪个。SVNListParentPathon#在Subversion1.3及更高版本中,#这个配置使得Subversion列出由SVNParentPath指定的目录下所有的版本库SVNParentPathC:svnroot#告诉Subversion在目录C:svnroot下寻找版本库#SVNPathC:svnrootApacheSVN#指定只使用单一版本库,与SVNParentPath配置不能并存AuthTypeBasic#启用基本的验证,比如用户名/密码验证AuthName"SVN版本库"#当一个验证对话框弹出时,告诉用户这个验证是用来做什么的#在弹出的对话框中的“SVN版本库”#就是前面配置文件中所写的相关AuthName的内容。AuthUserFileC:/svnroot/ApacheSVN/conf/users.auth#指定C:/svnroot/ApacheSVN/conf/users.auth为密码文件,用来验证用户的用户名及密码#注意如果这个密码文件的路径带有空格,要加上双引号,比如:#AuthUserFile“D:ProgramCollabNetSubversionServerhttpdconfpasswd”#如果不加上双引号,启动ApacheHTTPServer时会报错找不到这个文件。#对于配置文件中的与路径相关的,如果路径带有空格,要注意将路径用双引号引起来。Requirevalid-user#限定用户只有输入正确的用户名及密码后才能访问这个路径#AuthzSVNAccessFileC:/svnroot/ApacheSVN/conf/authz#指定C:/svnroot/ApacheSVN/conf/authz来限定各个用户或组在版本库中目录的访问权限#如果想让所有用户对版本库都有读的权限而只有特定的用户才有写的权限,#可以将Requirevalid-user行和AuthzSVNAccessFile行注释,下面表示允许匿名读取: ##Requirevalid-user#设置解释意思是Subversion版本库的URL是http://MyServer/svn/DAVsvn告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。SVNListParentPathon对于Subversion1.3或者更高版本,这个指示表示显示所有SVNParentPath下的版本库。SVNParentPathD:SVN告诉Subversion需要查看的版本库位于D:SVN之下AuthTypeBasic激活基本认证,就是用户名/密码AuthName"Subversion用来说明何时弹出要求用户输入认证信息的认证对话框repositories"AuthUserFilepasswd指定使用的认证密码文件AuthzSVNAccessFile位置Subversion版本库的访问控制文件的路径Requirevalid-user指定只有输入了正确的用户/密码的用户可以访问URL保存”httpd.conf”并退出,这里Apache2的配置告一段落。(3)第三步上面使用了authz,和users.auth两个文件,我们后面创建。方法一:在c:创建svnroot文件夹,然后通过svn的svnadmin命令创建数据仓库svnadmincreatec:svnrootmyproject如果运行成功的话,什么也没有输出,方法二:在c盘下新建c:svnroot下创建myproject文件夹,通过TortiseSVN来创建。选中myProject右键选择TortiseSVN,选择二级菜单createrepositoryhere在这个目录创建数据仓库说明:在创建的myProject文件夹下面我们会发现多了几个文件夹和文件,打开conf文件夹,然后使用editplus(如果没有安装editplus,可以用记事本或者写字板打开)再打开svnserve.conf文件,找到如下行#password-db=passwd,然后把它前面的#去掉,表示myProject是需要密码验证的.再打开conf文件夹下面的passwd文件,用文本编辑器打开,在[users]下面加上我们需要的用户和密码,比如用户和密码[users]admin=admin user=123456我们就启动了两个用户,一个叫admin,密码是admin,一个叫user,密码是123456.然后保存为passwd文件.设置访问权限我们再建编辑文件,叫authz,这个文件是设置访问权限的,里面内容如下:[myproject:/]admin=rw[myproject:/module1]user=rwadmin=rwrm表示可读可写,这表示,myproject下面的所有子目录admin都是有权限读写的,但是user只有权限读写此项目下面的module1目录,这个各自的访问权限就分的更细致了.例子:MyApacheSVNauthz:[/]admin=rw[ApacheSVN:/]admins=rwhw=r(4)第四步Cmd命令行模式下,到apache安装目录下的bin目录下操作如下进入apache安装目录下的bin目录用以下命令在后面接着输入>htpasswd-cbusers.authadminadmin即:随后会出现以下代码为admin用户设置好密码,创建第一个用户时创建文件,参数-cb或-cm;添加第二个用户则不用创建,可以用-b或-m: 此时把C:ProgramFilesApacheSoftwareFoundationApache2.2bin目录下的users.auth复制粘贴到c:svnrootmyprojectconf目录下重新启动apache服务在浏览器中输入以下地址http://localhost/svn/myproject/访问出现 表示配置成功,客户端TortiseSVN配合使用(5)第五步好了,部署第一个项目:现在E盘根目录下新建test文件夹在cmd命令行首先如果命令行显示则输入回车输入svnimportE:testfile:///E:/svnroot/myproject/-m"testimport"如下所示注意:1.(E:test)是你要部署的项目2.(file:///E:/svnroot/myproject/)这是你建立版本控制的仓库路径最后:访问http://localhost/svn/myproject/访问会列出你项目的版本信息: CallCenterSVN地址:http://168.1.0.194/svn/CallCenter/访问出现: 四、Svn数据迁移(从windows-linux或从windows—>windows方法类似)例如svn库是在windowsserver上,存放目录为d:/wlotx/1.先导出svn库导出到d:svnbaksvnbak20100728.dump在cmd命令行里输入svnadmindumpd:/svndata>d:svnbaksvnbak20100728.dump此时你会看到窗口里显示从第一个版本开始备份,一直到最后一个版本2.把svnbak20100303.dump想办法传到linux服务器,这是采用svn的方式3.我在linux的svn代码库为:/usr/local/svnroot/wlotxsvnadminload/usr/local/svnroot/wlotx
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处