您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > SVN版本控制(windows环境)以及常遇到的问题
SVN安装以及所出现的问题一、安装第一步,安装Apache2.2,下载后直接安装就可以了,没有什么难的。第二步,安装Subversion1.6.1(目前最新版本),注意下载时,看是否支持Apache2.2;我使用的是svn-win32-1.6.1.zip,解压之后即可使用。------------------------------------------------------------------------二、整合第一步,打开Apache安装目录下的httpd.conf文件------------------------------------------------------------------------找到下面的语句:#LoadModuledav_modulemodules/mod_dav.so#LoadModuledav_fs_modulemodules/mod_dav_fs.so将上面语句前面的#去掉------------------------------------------------------------------------第二步,在这句后面追加,如下语句:LoadModuledav_svn_modulemodules/mod_dav_svn.soLoadModuleauthz_svn_modulemodules/mod_authz_svn.so将subversion\bin目录下的mod_dav_svn.so,mod_authz_svn.so复制到apache的modules目录下;同时复制libapr-1.dll,libapriconv-1.dll,libaprutil-1.dll,libdb44.dll,libeay32.dll,libsasl.dll,ssleay32.dll到apache的bin目录下(覆盖);紫色部分中牵涉到的所要复制的文件因版本而异,以上所列的文件是参考其他资料的,但是在实际操作过程中发现是不正确的,拷贝过去后发现Apache无法正常启动,提示“mod_dav_svn.so”注册不到server中,这里解决的办法有两种,一是选择讲subersion\bin中的所有.dll文件全部复制过去,然后打开Apache,再进行删除.dll文件,这时如果没用的.dll文件apche不会做任何提示就可以删除!第二种方法是:用depends.exe文件打开“mod_dav_svn.so“文件,然后查看这个文件需要什么.dll,相应的从subversion\bin目录中拷贝到apache\bin中覆盖即可(depends.exe文件已上传到附近中)。------------------------------------------------------------------------这里还需注意的是.apache无法启动的原因,DOS窗口提示一下信息:httpd.exe:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,using192.168.1.3forServerName这个问题的解决办法是在httpd.conf文本文件中找到:#ServerNameIP:端口然后把#去掉即可,之后保存后就能启动apache.------------------------------------------------------------------------第三步,在这个文件的最后,追加如下语句:Location/repositoryDAVsvnSVNParentPathD:/SVN/repository/Location其中/repository是告诉Apache使用这个URI作为SVN的访问点,可以任选;下面D:/SVN/repository是SVN仓库的存储位置,也可以自己任选,但是这个目录一定要存在。上面这种是多库的配置方式,对于单库,可以把SVNParentPath变成SVNPath。这两个啥区别?简单来说,多库就是下面可以有多个repository,比如可以用,来访问不同的repository,对应于D:/SVN/repository下面的子目录repo01,repo02,而单库只能用,来访问唯一的repository。心急的人现在可能就去访问这几个link了,是不是结果让你失望啊?因为我们还没有建立repository,当然不能访问,建立的方法是用SVN安装目录\bin下面的svnadmin.exe,在命令行输入“svnadmincreateD:/SVN/repository/repo01”,就建立了repo01,然后重启Apache,再访问,是不是看到了“Revision0:/”?这说明版本库已经开始运作了(初始版本0)。------------------------------------------------------------------------第四步、基本认证和权限控制------------------------------------------------------------------------SVNrepository成功跑起来,你的repository总要搞个用户名密码?此外你可能还需要给不同的帐户或角色在不同的目录上赋予不同的权限(只读、可写。更改第三步中的设置Location/repositoryDAVsvnSVNParentPathD:/SVN/repositoryAuthTypeBasicAuthNameyour-name'ssubversionrepositoryAuthUserFileD:/SVN/svn_authRequirevalid-user/Location红色这几行就是我们要的,其中AuthName随便写问题不大,那个AuthUserFile也随便放,里面存的是用户名和密码。注意这个文件是Apache生成的,可不是你随便建立个文本文件把用户名密码写进去就OK:)具体是用Apache的htpasswd命令:htpasswd-cfilenameusername#新建一个passwordfile,并写入username的信息,回车后提示你输入密码htpasswdfilenameusername#在当前passwordfile里面追加一个username的信息这一步做好后,重启Apache,再用浏览器访问你的repository,是不是提示你输入用户名和密码了基本的认证就是这样,接下来是权限。还是照例先改httpd.conf:Location/repositoryDAVsvnSVNParentPathD:/SVNAuthzSVNAccessFileD:/SVN/svn_ruleAuthTypeBasicAuthNameyour-name'ssubversionrepositoryAuthUserFileD:/SVN/svn_authRequirevalid-user/Location这个svn_rule是啥?其实就是个文本文件,这里没加扩展名是Unix的风格,这个文件里定义了每个帐号或者每个角色可以干什么。看几个例子:[repo01:/]user1=rwuser2=r对于多库,定义其中的一个repo01下的所有目录,允许user1读写,user2只读[repo01:/Project1]user1=rwuser2=r和上面类似,只不过规定细化到了子目录:)[/Project1]user1=rwuser2=r这个说的是单库的情况:)[groups]admin=user1,user3readonly=user2,user4[repo01:/]@admin=rw@readonly=r这个就是设定角色了,和前面的区别主要是有了group,然后group的名字前面有@,为了和用户名区分。下面的是我最终测试通过的httpd.conf文件中最后部分的内容!------------------------------------------------------------------------Location/repositoryDAVsvnSVNParentPathD:/svn/repositoryAuthzSVNAccessFileD:/svn/svn_ruleAuthTypeBasicAuthNameIdeal-SVNAuthUserFileD:/svn/svn_authRequirevalid-user/Location------------------------------------------------------------------------PS:在配置SVN时会因为版本的问题出现很多错误,我参考网上资料的时候大部分帖子都是一个模版,并且存在很多问题,以上是我搜集并且修改,亲自测试通过的SVN配置方法。下面还有一个关于配置时容易遇到的apache的问题------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------可能遇到的问题:Apache初次安装好后,可以试着启动它,用系统托盘里的ApacheMonitor,或者开始菜单里的快捷方式都是ok的。正常启动后,可以用浏览器访问,如果看到页面上的“Itworks!”,就OK。如果Apache启动过程中遇到什么麻烦,可以去系统的时间日志里看看究竟发生了什么,方法是“我的电脑”上右键-管理-事件查看器,在“应用程序”和“系统”里都有可能出现,不妨都check一下。Apache最常遇到的问题有两种,一个是端口被占用,另一个是配置文件httpd.conf语法出错。我们一般会采用默认的80端口,如果有其他Process在监听这个端口的话,Apache就无法启动。这时,要么选择给Apache换个端口,要么选择干掉占用端口的家伙。换端口只要在Apache的httpd.conf里面Listen配一下就行了,这里不加赘述。主要来说说第二种选择(这也是我经历的)。首先要找到是哪个家伙占用了80端口,头号嫌疑犯当然是IIS,去管理工具-服务里看看它有没有启动,如果有,干掉并设置为手动或禁用(前提是你确定不会在这台机器上使用IIS,如果是公用的server,万分小心咯。。。);如果不是IIS,其他ApplicationServer也有一些嫌疑,比如Weblogic,Tomcat之流,尽管他们默认端口不是80,但不排除哪位在用它同时做HTTPServer,解决方法一样,只是这种情况下往往就不能轻举妄动了,因为别人把默认端口该成80总是有目的的;如果这两个都被排除,那就不能在乱猜测了,要凭证据抓人了:)这里我们使用强大的netstat命令,让罪魁祸首无从藏身。具体的做法是在commandline下输入“netstat-n-ab”,看到了什么?是不是list了所有正在使用的端口号?更重要的是,后面还有对应的PID,接下来就是从身份证号找人了,在任务管理器里,进程那个标签下,找到和PID对应的进程名字(没有PID那一列?查看-选择列)。这里说说我的情况,我的
本文标题:SVN版本控制(windows环境)以及常遇到的问题
链接地址:https://www.777doc.com/doc-905252 .html