关于svn的搭建(window)

首先闲扯一个,之前看到的关于垃圾邮件的有多么的浪费资源,消灭垃圾邮件可以为全球省好多的资源,原来低碳的范围广的很。其中有个蜜罐的方法,就是邮件运营商创造出大量的无人用的邮箱,等着这些垃圾邮件上钩。

正事,说说SVN服务器的搭建,SVN是版本控制工具,http://subversion.tigris.org/

 

 

http://subversion.tigris.org/ser ... entList?folderID=91 (英文)

http://bbs.iusesvn.com/forum-7-1.html中文)下载最新版本的Subversion。

 

1.安装后在dos界面输入svn,正常则ok了

2.创建资源库
svnadmin create g:/svnroot/repos
3.运行svn服务
svnserve -d -r g:/svnroot
4.授权
进入g:/svnroot/repos目录下的conf目录,打开svnserve.conf,去掉anon-access=read前面的#号注释,最好anon-access=read前没有空格也去掉,然后把anon-access=read改为anon-access=none,意思是说没有用户名与密码的不能读写,同样地把auth-access=write和password-db=passwd去注释(和前面的空格)。我们来看一下搭建SVN服务端时如何设置密码。
5.设置密码
打开conf/passwd文件,在文件尾加如下:
user_name=your_password
6.导入
右击你待导入的目录TortoiseSVN->Import(导入)...,然后URL里输入svn://localhost/repos即可。

 

 

此时在本机就可以使用了,但是启动服务那比较麻烦,注册到window服务中比较方便一下,可以设置成自启动, 

 

 请注意,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务,然后使用"net stop svnservice"停止服务(这些命令需要在以管理员身份运行下才可以)。 
   另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“/”处理“"”号,例如上面的例子中如果svnserve.exe在“G:/Program Files/Subversion”中,则命令应该写为“binpath= "/"G:/Program Files/Subversion/bin/svnserve.exe/"”(“”中的内容),整个命令如下,      sc create svnservice binpath= "/"G:/Program Files/Subversion/bin/svnserve.exe/" --service -r g:/svnroot"  displayname= "SVNService"    depend= Tcpip 
   其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。如果你还想让服务随着windows启动而自动启动 那么你能够 在在windows 的服务中更改这个服务的属性,也可以在创建时 加上 start= auto 

 

删除服务 更加简单 
sc delete 服务名称 比如:sc delete svnservice 

不过这个删除只是进入了禁用的行列,我当初写错了,查了下需要进入注册表(regedit)才能彻底删除HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/service/***进行删除即可

 

在这些完成后我发现只能在本机使用,我不清楚有什么东西设置的不正确,看了下apache+svn,先试试,我是按照这篇文章来操作的,

首先要建立一个数据仓库,我们假设建在E盘,数据仓库最好不要建在C盘,因为C盘重装系统以后就格了.我们先在E盘下面建立一个目录叫svnroot,然后在svnroot下面再建立一个我们专门放我们工程的目录,比如叫MyProject.于是我们在E盘下面就有了这个一个文件夹:E:/svnroot/MyProject,然后我们用svnadmin的命令,使这个文件夹变成我们的数据仓库,命令如下:
svnadmin create E:/svnroot/MyProject
如果运行成功的话,什么也没有输出,这个时候,我们再来到MyProject文件夹下面,我们会发现多了几个文件夹和文件,我们打开conf文件夹,然后再打开svnserve.conf文件,找到如下行# password-db = passwd,然后把它前面的#去掉,表示MyProject是需要密码验证的.但是我们密码设在哪里呢,这个时候我们再打开conf文件夹下面的passwd文件,用文本编辑器打开,在[users]下面加上我们需要启动的人员的用户和密码,比如
[users]
hadeslee=hadeslee1234
tom=123456

这个的话,我们就启动了两个用户,一个叫hadeslee,密码是hadeslee1234,一个叫tom,密码是123456.然后我们保存passwd文件.然后,我们再建一个文件,叫access.auth,这个文件是设置访问权限的,里面内容如下:
[MyProject:/]
hadeslee = rw
[MyProject:/module1]
tom=rw
hadeslee=rw

这表示,MyProject下面的所有子目录hadeslee都是有权限读写的,但是tom只有权限读写此项目下面的module1目录,这个各自的访问权限就分的更细致了.有关于MyProject文件夹下面的设置,我们就告一段落了,我们现在开始设置apache,使它能和subvertion一起工作.

首先来到Subersion的安装目录,进入它的bin目录,我们会发现如下两个文件:
mod_authz_svn.so
mod_dav_svn.so

我们把这两个文件复制一下,粘帖到apache的安装目录下的modules文件中, 从Subversion的安装目录拷贝文件libdb44.dll到Apache的modules目录。

然后我们再打开apache安装目录下的conf文件夹,打开httpd.conf文件.增加如下两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

注意,由于dav_svn需要dav_module的支持,所以要确保下面这一行没有被注释,并且保证在dav_svn之前加载:
LoadModule dav_module modules/mod_dav.so

然后模块的设置就完成了,下面我们要设置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>
意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库
DAV svn
告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
SVNListParentPath on
在Subversion 1.3及更高版本中,这个指示器使得Subversion列出由SVNParentPath指定的目录下所有的版本库
SVNParentPath D:/SVN
告诉Subversion在目录D:/SVN下寻找版本库
AuthType Basic
启用基本的验证,比如用户名/密码对
AuthName "Subversion repositories"
当一个验证对话框弹出时,告诉用户这个验证是用来做什么的
AuthUserFile D:/passwd
指定D:/passwd用为密码文件用来验证用户的用户名及密码
AuthzSVNAccessFile D:/svnaccessfile
指定D:/svnaccessfile来限定各个用户或组在版本库中目录的访问权限
Require valid-user
限定用户只有输入正确的用户名及密码后才能访问这个路径

更多的解释看看http://bbs.iusesvn.com/thread-158-1-1.html



添加完上面这些,我们会发现access.auth是我们刚才新建的,可是users.auth我们并没有新建啊.怎么就把它加进去了.不要急,现在我们就来生成users.auth文件.

进入apache的安装目录的bin文件夹,输入如下命令:

D:/Program Files/Apache Group/Apache2/bin>htpasswd -cb users.auth hadeslee hadeslee1234
Automatically using MD5 format.
Adding password for user hadeslee

D:/Program Files/Apache Group/Apache2/bin>

我们就会发现在bin目录生成了users.auth,我们可以看到,hadeslee用户名已经被添加进去了,密码是用MD5加密过的.然后我们还要增加用户呢,可以用如下方法:
D:/Program Files/Apache Group/Apache2/bin>htpasswd -b users.auth tom 123456
Automatically using MD5 format.
Adding password for user tom

D:/Program Files/Apache Group/Apache2/bin>

只是在生成密码的时候,小了一个c的参数,因为c表示重新生成一个这样的文件,我们第一次的时候是要加的,后面我们要添加用户的时候,就不用这个c了.然后打开users.auth,会发现两个用户都已经在里面了,这个时候,我们把users.auth移到E:/svnroot/MyProject/conf/里面去,使我们上面的设置生效.

这个时候,我们的设置就完成了.可以在浏览器里面输入http://localhost/svn/MyProject试试看.

如果以后我们还要加入其它的项目呢,可以有两点解决方式
1,把以后的项目也导入到我们的MyProject的仓库中,这个的话,就不用改什么配置了
2,新建一个数据仓库,然后只要按上面的步骤,把新的<Location...>设置放到httpd.conf里面就可以了.
当然,验证文件,访问权限文件,还有访问SVN的密码都要自己按上面的方法再设一遍.

 

我最初装了个1.4.0的,结果apache起动不起来,进行了下apache调试,(apacheMonitor.exe -k install -n apache2 不知道为什么无反馈)后来在在windows服务里面看到有个apache2.2  httdp.exe -w -n apache2.2 -k start,看到是版本不兼容,悲剧

 

 

将svn服务注册成window服务,http://lipeixiaoyu.iteye.com/blog/1065940

更多的东西,http://www.subversion.org.cn/bbs/forumdisplay.php?fid=19

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值