Win7下搭建SVN服务器端及客户端多仓库管理(图文教程)

来源:互联网 发布:玫瑰人生电影知乎 编辑:程序博客网 时间:2024/06/06 12:50

本文参考:

1.使用SubVersion+TortoiseSVN多仓库方式进行版本控制
2.使用Subversion的svn协议访问(权限配置)
win7下安装svn服务器端及客户端详细步骤:


,准备工作:


1.
下载服务器端 Setup-Subversion-1.6.16.msi,下载页面:http://subversion.apache.org/packages.html
由于我是32位的系统所以选择Windows列表下的Win32Svn (32-bit client, server and bindings,MSI and ZIPs; maintained by David Darj)

2.
安装服务器端,安装路径可以自己改,我的安装路径是C:\Program Files\Subversion

3.
下载客户端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

4.
安装客户端,安装路径也可以自己改,我的安装路径是C:\Program Files\TortoiseSVN

 

,实质操作

5.建立
版本控制仓库,路径自己定,我的做法是在E盘上新建一个MySVN文件夹,用它来作为不同程序版本仓库的根目录,双击打开它,然后在里面建立了dd ,New,Program1等用来存放不同程序的目录,也是即将建立版本控制仓库的位置,对dd,New,Program1等版本仓库目录,在各自的里面点击右键,[TotoiseSVN]->[Create Repository here]进行创建,版本库模式指定为默认的即可。Repository创建完毕后会在目录下生成若干个文件和文件夹,conf目录是用来设置管理的目录;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
(本步骤也可以用命令行来完成:svnadmin create E:\MySVN\dd,svnadmin create E:\MySVN\New等

 

6,在创建完版本控制库后,向里面添加内容方法如下:在将要导入到库中的文件或文件夹上单击右键,如图一选择导入,在弹出的对话框里如图2,选择要导入到哪个版本控制库中。此文中选择了New这个版本控制仓库。



                                                           图一




                                                           图二
(注意:这里我们以建立多个版本控制库,单版本仓库的方式只需要在一一个版本控制仓库里弄就可以了,但以为把不同项目的文件都放在一个版本控制仓库里太乱,所以这里为每个项目建立了不同的版本控制仓库,如本文中的dd,New,Program1等)

7.
设置版本控制库权限。

打开版本控制仓库E:\MySVN/conf/目录,打开svnserve.conf找到一下两句:
# [general]
# password-db = 
passwd
去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件,这里采用了基于用户名的明码访问控制方式,同样打开passwd文件,将
# [users]
# harry = harryssecret
# sally = sallyssecret
这几行的开头#字符去掉,这是设置用户,一行一个,存储格式为用户名 = 密码,如可插入一行:admin = admin888,即为系统添加一个用户名为admin,密码为admin888的用户,注意:去掉#号的同时,#所占的空格位置也必须去掉,即用BackSpace删除#,前面的空格也一并去掉。

整理后应该如下:

svnserve.conf文件的格式


(注意:若不把annon-acess设置成none,默认会以匿名用户访问,不提示授权,没有写的权限,设置成none后,当访问的时候提示授权,授权的用户名和密码都是在passwd文件指定的)


passwd文件的格式



-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

多仓库权限的管理:(一些疑问)

如上面所述,在MySVN根目录下又dd,New,Program1等版本仓库,在每个仓库的根目录conf文件夹下都有svnserve.conf,passwd和authz这三个控制权限的文件

其中svnserve.conf是总的控制权限文件,里面的设置自己阅读即可,这里要讨论的是多个版本仓库共用权限文件(passwd和authz)这两个文件,方法如下:

(1)每个版本仓库都保留svnserve.conf这个权限控制文件,并在其中配置使用基于用户的的权限文件passwd和基于路径的权限配置文件authz,把其指向的权限文件路径都设置成共用的权限文件

(2)共用的passwd权限文件输入用户名和密码组即可

(3)在authz权限配置文件里,有以下部分内容:

[groups]# harry_and_sally = harry,sally# harry_sally_and_joe = harry,sally,&joe# [/foo/bar]# harry = rw# &joe = r# * =# [repository:/baz/fuz]# @harry_and_sally = rw# * = r

[groups]组指定的是用户的所在组,方便管理,这里的用户都是passwd中存在的用户

[/foo/bar]指的是你访问的的仓库的目录,比如你此时在Repo_browser里输入的是svn://localhost/dd对dd仓库进行访问,这里配置的就是用户对dd仓库目录下foo/bar子目录下的访问的权限

[responsity:/baz/fuz],比如是New:/baz/fuz,配置的就是对New仓库下baz/fuz子目录的访问权限,这意味着在访问一本版本仓库的时候可以同时访问另一个版本仓库的文件?这里面存在访问的逻辑问题,私以为前面的版本库指定只是让访问权限更明确,因为你在访问的时候已经确定了版本库,这个前提使得用不带版本库指定的即可啊

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


8.启动服务器端并将svn设为系统服务,由于win7的安全权限问题,安装系统服务时会出现“[sc] openSCManager 失败 5拒绝错误。
解决方案:
新建一个新文件svnservice_setup.bat.内容如下:

sc create SVNService  binPath= "\"C:\program 
files\Subversion\bin\svnserve.exe\" --service -root E:\MySVN --listen-port3691" DisplayName= "SVNService" depend= Tcpip start= auto 

sc start SVNService

pause


上面代码有三个地方必须注意分别为

1.服务名(代码里为:SVNService,可以自己取);

2.subversion bin目录的路径(代码里为:C:\program files\Subversion\bin\svnserve.exe\,这里必须是你安装Subversion的路径,如我上面是C:\program files\Subversion\bin\svnserve.exe\;

(说明:由于路径中的"Program Files"带有空格,因此整个路径需要用双引号引起来。而双引号本身是个特殊字符,需要进行转移,因此在路径前后的两个双引号都需要写成\")

3.所建版本控制仓库的位置(代码里为:E:\MySVN,这里必须是你安装版本控制库的路径,如我上面是E:\MySVN

注:“=”前不得有空格,后必须有空格。这里指的是binpath,--service,-r,start等参数后面的“=”号,

运行:

右键svnservice_setup.bat文件,选择以管理员方式运行OK!,也可以将上面内容部分直接在cmd.exe输入并回车,启动后在计算机->管理->服务和应用程序->服务->找到SVNService,右键属性找到启动类型改为自动,这样每次开机它都会自动运行了。

 

关于这部分的说明:

服务安装代码:

sc create SVNService binpath= "\"C:\ProgramFiles\Subversion\bin\svnserve.exe\" --service -r E:\MySVN\ "displayname= "SVNService" depend= Tcpip

服务启动代码

sc start SVNService


版本控制仓库的目录结构:



客户端访问层次:



9.
访问svn版本控制仓库

在桌面上点右键[TotoiseSVN]->[Repo-browser]在地址栏里输入http://localhost/dd或者svn://localhost/dd,即可查看版本控制仓库。

注意:这里采用了多版本控制仓库的方式MySVN下的dd,new,Program1,ss等都是独立的版本仓库,而MySVN文件夹是所有版本控制仓库的根目录,在这个目录内并不建立版本控制仓库,经过上面的服务配置后,MySVN目录就相当于svn://localhost/中的localhost,这是服务启动的根目录。


E盘右键选择SVN Checkout--->Checkouot directory下自定义目录,我的是MySVN,然后是点击OK,这样就把MySVN目录内所有版本控制仓库Checkout出来了

到这里也就完成了本地svn服务器端和客户端的安装。

10.
如果要删除计算机-管理-服务里面的SVNService,请在命令行窗口输sc delete SVNService

原创粉丝点击