win7下搭建SVN服务器

闲来无事,就在本地搭建了一个SVN环境,网上类似的文章很多,还是根据自己搭建时碰到的一些问题来整理下,整个流程还是大同小异的



1 安装svn的服务端和客户端

下载服务器端 Setup-Subversion-1.7.10.msi,下载页面:http://sourceforge.net/projects/win32svn/files/1.7.10/apache22/Setup-Subversion-1.7.10.msi/download

选择安装目录,我安装的是D:\Subversion


下载客户端TortoiseSVN-1.6.15.21042-win32-svn-1.6.16.msi,下载地址:http://tortoisesvn.net/downloads.html 
并下载对应版本的语言包LanguagePack_1.6.15.21042-win32-zh_CN.msi 


2 新建版本控制库,在E盘下新建文件夹E:\mysvn;选择mysvn右键,TotoiseSVN]->[Create Repository here]进行创建,ok就行,具体的文件夹介绍如下:

Repository创建完毕后会在目录下生成若干个文件和文件夹,conf目录是用来设置管理的目录;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录, 用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。 
(本步骤也可以用命令行来完成:svnadmin create E:\MySvn) 


设置版本控制库权限

  打开版本控制库F:\mySVN的/conf/目录,打开svnserve.conf找到一下两句: 
# [general] 
# password-db = passwd 
去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件 
同样打开passwd文件,将 
# [users] 
# harry = harryssecret 
# sally = sallyssecret 
这几行的开头#字符去掉,这是设置用户,一行一个,存储格式为“用户名 = 密码”,如可插入一行:admin = admin888,即为系统添加一个用户名为admin,密码为admin888的用户 


4  启动SVN服务

这里也有两种方式,我才用的是这种:

新建svnSetup.bat文件,里面编辑内容如下

sc create SVNService binPath= "\"d:\Subversion\bin\svnserve.exe\" --service -r e:\mysvn --listen-port 3691"  depend= Tcpip start= auto 
sc start SVNService 
pause
 

上面代码有三个地方必须注意分别为1.服务名(代码里为:SVNService,可以自己取);2.subversion bin目录的路径(代码里为:d:\Subversion\bin\svnserve.exe,这里必须是你安装Subversion的路径,如我上面是d:\Subversion\bin\svnserve.exe\);3.所建库的位置(代码里为:e:\mysvn,这里必须是你安装版本控制库的路径,如我上面是e:\mysvn) 
右键 选择以“管理员方式运行”,OK! 
注:“=”前不得有空格,后必须有空格。 

编辑好保存,双击执行

      执行完了后,进入services.msc,查看应该有个Svnservice服务,可以设置成自动,那么以后就开机启动了

5  把要做版本控制的代码或文件渗透进版本库,操作如下

选择你要控制的文件夹如e:/test,右键该文件夹选择 TortoiseSVN -> Import...”,在弹出对话框的“URL of repository”输渗入渗出 ,输入url为

“svn://localhost:3691/svn  点击OK,

全部操作就完成了,


下面你就可以进行各种操作了


我碰到的问题是:

当我把文件夹渗透进版本库的时候,报错了,是经典的“Error: Can't connect to host 'localhost': 由于目标计算机积极拒绝,无法连接。这个错误纠结了一个多小时,因为我的服务也开了,端口也在监听,搞不明白呢,突然一想,原来我改了端口了,默认的是3690,被我改成了3691,虽然在防火墙中已经增加这个端口了,但是渗透已经访问的时候就必须要加上端口号了,问题解决



还有另外一个版本


第一步:下载文件和安装
SVN服务器端下载地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
下载的安装包点击安装即可。服务端安装好后软件会自动在系统的环境变量中增加相应的值,测试是安装完成可以在cmd命令行中输入“svn”或者“svnadmin”来测试能否运行。

第二步:部署存储库并运行服务端
建立SVN的存储库,路径以F:\SVNHome为例,创建完该文件后,就进行Windows的服务绑定,以便以后每次重启机器后都能自动运行,这里用到的是Windows自带的创建服务的命令sc,在命令行模式下执行:
sc create SVNService binpath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r F:\SVNHome" displayname= "SVNService" depend= Tcpip start= auto
注意这里的格式,“=”后面是必须空一格的,否则会出现错误。其中的几个路径分别是服务端安装路径和存储库的路径。
在提示建立成功后,可以直接输入“net start SVNService”来启动服务,或者可以直接在“管理工具”的“服务”中直接启动。
第三步:创建项目以及配置访问权限
进入到F:\SVNHome目录下,鼠标右键选择[TotoiseSVN]->[Create Repository href...]进行创建,创建之前保证该目录下没有任何的文件夹和文件。创建成功后会在里面自动生成几个文件夹:dav目录是提供给Apache与 mod_dav_svn使用的目录,让它们存储内部数据;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用 来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配 置的版本号;conf存放的是配置文件;
访问权限的设置方法:
在conf目录下,用记事本打开svnserve.conf,设置如下:

[general]
anon-access = none
autn-access = write
password-db = passwd

第一个用来设置匿名用户的权限 none为设置存储库不允许匿名访问
第二个用来设置经过授权的用户的权限 write为可以写入
第三个用来指定授权用户的密码存放文件

在同一目录下打开passwd,也就是上面设置的,当然你也可以改成其他的文件名,设置如下:

[users]
user1 = pass1

这里就是指定授权访问用户名和密码,格式为:用户名 = 密码
多个用户就写多行,设置完之后就大功告成了。

接下去就可以开始使用TotoiseSVN进行Import、Update、Checkout、Commit等操作了。

初始化导渗透

下面就是将我们的数据(项目)导渗透到这个版本库,以后就由版本库管理我们的数据我们的任何改动都会被 
版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找往返数据 
比如,我在 d:\wwwroot 下有个 guestbook 文件夹,里面存放的是我编写的留言簿程序在此文件夹上“ 
右键 -> TortoiseSVN -> Import...” ,在弹出对话框的“URL of repository”输渗入渗出 
“svn://localhost/repos1/guestbook”在“Import message”输渗入渗出“导渗入渗出整个留言簿”作为注释 
点 OK 后要求输渗透帐号我们在用户名和密码处都输渗透 test 完成后 guestbook 中的内容全部导渗透到了 
svn://localhost/svn/repos1/guestbook 
我们观到在 e:\svn\repos1 没有任何变化,连个 guestbook 文件夹都没有建立,唯一的变化就是 
e:\svn\repos1容量变大了实际上我们源guestbook中的内容已经导渗透 repos1 版本库了,源 guestbook 
文件夹可以删除了
需要注重的是,这一步操作可以完全在另一台安装了 TortoiseSVN 的客户机上入行例如运行svnserve的 
主机的IP是133.96.121.22,则URL部分输渗入渗出的内容就是“svn://133.96.121.22”

取出(check out)

取出版本库到一个工作拷贝: 
来到任意空目录下,比如在f分区建立一个空文件夹 f:\work “右键 -> SVN Checkout”在“URL of 
repository”中输渗透“svn://localhost/svn/repos1/guestbook”,这样我们就得到了一份 guestbook 中内容的 
工作拷贝

存渗入渗出(check in)/提交(commit)

在工作拷贝中作出修改并提交: 
在 guestbook 工作拷贝中随便打开一个文件,作出修改,然后“右键 -> SVN Commit... ”这样我们就把 
修改提交到了版本库,版本库根据情况存储我们提交的数据 
在修改过的文件上“右键 -> TortoiseSVN -> Show Log” ,可以观到对这个文件所有的提交在不同的 
revision 条目上“右键 -> Compare with working copy”,我们可以比较工作拷贝的文件和所选 revision 版 
本的区别


权限配置这块,首先如果不允许用户匿名访问的话,先要把svnserve.conf中

的anon-access = read改成anon-access = none,然后需要把

# authz-db = authz前面的注释去掉在到authz文件进行配置



  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值