SVN版本控制安装配置说明

时间:2022-04-17 03:19:28

版本控制好工具有SVN、CVS、VSS等多种,他们的优劣在此不说明,请网络参阅。

SVN支持多种平台,此文仅描述Windows平台下使用说明。

SVN客户包含客户端和服务端。Windows平台下客户端使用TortoiseSVN,而服务端可使用SubVersion或者VisualSVN Server。

两者区别如下:

  1. SubVersion服务需要封装SVN Serve为Windows Service,才能自启动;
  2. SubVersion控制权限,需要通过修改配置文件;
  3. SubVersion想通过浏览器访问,需要安装配置Apache。

  而VisualSVN Serve集成了Subversion和Apache,省去了以上所有的麻烦。安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。

本文描述内容针对SubVersion使用。因为要的就是原始、整洁和稳定,也更接近Linux使用方式。

一、           下载安装

1. 下载

  1. 服务器:Setup-Subversion-1.8.0-1.msi
  2. 客户端:TortoiseSVN-1.8.5.25224-win32-svn-1.8.8.msi
  3. Apache服务:httpd-2.2.25-win32-x86-openssl-0.9.8y.msi

  注意,此3个软件版本有可能不匹配。

2. 安装

  一般情况下,Subversion服务器仅供局域网/本地使用,所以不需要Apache服务器。如需Apache服务器,可以参考《Apache服务安装及配置》。如出现无法安装msi文件,或许需要下载安装新windows installer。

1>     服务器安装

  1. 双击Setup-Subversion-1.8.0-1.msi,一直下一步,完成svn服务端软件安装。
  2. 配置系统环境变量Path新增D:\Program Files\Subversion\bin(注意本文安装路径是D:\Program Files\Subversion)。
  3. 进入DOS界面,输入svnserve.exe –version。以验证查看服务器软件安装是否成功。

2>     客户端安装,双击TortoiseSVN-1.8.5.25224-win32-svn-1.8.8.msi,一直下一步,完成svn客户端软件安装。本文安装路径D:\Program Files\TortoiseSVN。

3>     不习惯TortoiseSVN英文菜单界面的朋友,可以下载TortoiseSVN中文语言包安装,如LanguagePack_1.8.4.24972-win32-zh_CN.msi,安装完成后,在TotoriseSVNà SettingsàGeneralàLanguage选择“中文”。

二、           创建版本库

首先创建一个空文件夹,如D:\svnRoot,作为所有版本库的根目录,便于集中管理所有版本库。有两种方式可以创建版本库:

第一种:TortoiseSVN方式创建。在D:\svnRoot目录下,新建一个空文件夹,如D:\svnRoot\repose1,单击鼠标右键,选择“TortoiseSVN”à“Create repository here”完成创建

第二种:SubVersion方式创建。在开始菜单运行cmd进入DOS界面,输入

svnadmin create D:\svnRoot\repose2                  (创建版本库)

完成版本库创建。

三、           启动SVN服务

  在服务器DOS界面,输入

    svnserve.exe --daemon --root D:\svnRoot                  (启动服务)

  可以写成svnserve.exe -d -r D:\svnRoot。--daemon,表示svnserve将以守护进程方式运行,当关闭当前命令行窗口就会把svnserve stop了。使用SVN服务,命令行窗口需要服务器一直开着。我们可以通过svnserve -h来查看相关操作选项。

四、           配置用户和权限

  1. 打开版本库D:\svnRoot\repose1\conf\svnserve.conf文件,把里面的被# 注释的password-db = passwd,去掉前面的 # 注释符,并且前面不能有空格。这样将会使用confpasswd文件作为密码数据库。
  2. 修改密码数据库passwd,添加user:

          [users]

          admin = 123                 (用户名 = 密码,一行一个account)

  ( 无需重启服务器,即可使用!如果提示“认证失败”,请检查此步骤的配置)

  此部分进一步详情可参考《SVN用户和权限配置》。

五、           访问版本库

  接下来可以通过TortoiseSVN -> Repo-browser来查看版本库:在点击那个菜单项后弹出的URL对话框中输入

          svn://localhost/repos1                                              (访问版本库)

  这样就可以看见repos1版本库的目录结构了。其他电脑访问需要把localhost改成本机IP地址,其他电脑只需要安装TortoiseSVN客户端即可。

注意:在此版本,本人测试先“svnserve.exe --daemon --root D:\svnRoot”启动,再访问“svn://localhost/repos1”,提示无法访问。而是启动“D:\svnRoot\repose1”,再“svn://localhost”访问repose1版本库。

六、           开始新的项目

  1. 添加新的文件到版本库Import

   选中待管理的文件所在文件夹,如E:\codes\NTPacket,単击鼠标右键,选择“TortoiseSVN”à“Import”à确定,在身份认证弹出框,输入passwd文件里正确的用户名和密码,即可上传成功。

  1. 签出版本库里面的项目Checkout

  选择一个空白地方或者新建一个空文件夹,単击鼠标右键,选择“SVN Checkout”,然后确认在身份认证弹出框,输入passwd文件里正确的用户名和密码,即可签出。

  1. 修改文件Commit及Update。Checkout到本地的文件,可以修改,修改后选中当前文件或其目录,鼠标右键,弹出菜单多出“SVN Update”及“SVN Commit”, Commit提交此次修改,Update重新下载服务器文件至本地。
  2. 导出版本库Export。checkout下载文件到本地后,与svn服务器有仍有状态关联,可以修改提交等。而export仅仅是下载文件到本地,之后与svn服务器没任何关联,修改后也无法提交。

七、           服务自启动

  一般情况,启动SVN服务,需要每次执行步骤三,DOS窗口还必须一直开着。这样很不方便,可以把步骤三封装成Windows Service自启动。

  1. 新建一个空bat文件,如svnSer.bat,输入

sc create svnlt binpath= "\"D:\Program Files\Subversion\bin\svnserve.exe\" --service --root \"D:\SvnRoot\repose2\"" displayname= "Subversion Server" depend= Tcpip start= auto

  说明:a. svnlt为服务名;b. 赋值=左边没空格,右边有一个空格;c.注意路径中的”号及\书写正确。

  1. 双击svnSer.bat文件,完成Windows Service注册。
  2. 启动svnlt服务有两种方式:第一种,重启电脑,svnlt服务会自启动;第二种,在DOS界面执行net start svnlt语句完成启动。

            net start svnlt                       (启动svn版本库服务)

            net stop svnlt                       (停止服务)

            sc delete svnlt                      (删除服务,后需重新注册svnlt服务)

八、           多版本库与用户权限配置

  1. 多版本库结构

  一般情况,部门组织或开发团队有多个项目需要版本控制,可多个项目共用以一个版本库,也可以每一个项目对应一个版本库,建议用后者。

  SVNRoot为根目录,为MobilePlatform项目创建一个版本库,为KTCoder项目创建另一个版本库,项目KTCoder下有两文件夹Kernel和Business。

1>     新建空目录D:\SVNRoot;

2>     cmd命令行,进入DOS界面执行svnadmin create D:\svnRoot\MobilePlatform创建版本库MobilePlatform;

3>     DOS界面执行svnadmin create D:\svnRoot\KTCoder创建版本库KTCoder;

4>     svnServe.exe –d –r D:\svnRoot启动服务。TortoiseSVN Repository Browser 中URL栏输入svn://localhost/MobliePlatform访问MobilePlatform项目版本库,svn://localhost/KTCoder访问KTCoder项目版本库。

  1. 用户权限配置

  人员情况(权限举例):

  1. Lz,公司老总,分配只读所有文档的权限;
  2. Wfh,Zg,项目经理,分配自己管辖项目读写权限,及其他项目只读权限;
  3. Lyk,KTCoder项目核心开发人员,Kernel模块唯一开发者,Kernel读写,其他读写;
  4. Whx,KTCoder项目开发人员,Kernel模块只读,Business模块读写;
  5. Dgy,MobilePlatform项目开发人员;
  6. Fyh,svn管理员。

1>     打开版本库下的conf\svnserve.conf文件,删除下面几行的前面注释符#和空格。MobilePlatform版本库与KTCoder版本库一致处理。

        [general]

        # anon-access = read     à anon-access = none  //匿名访问,改成none

        # auth-access = write    à auth-access = write

        # password-db = passwd      à password-db = passwd //指定用户密码文件

        # authz-db = authz         à authz-db = authz      //指定权限文件

可以指定上面两个文件的路径。

2>     打开版本库下的KTCoder\conf\ passwd文件,添加

          [users]

          Lz = 123

          Wfh = 123

          Zg = 123

          Lyk = 123

          Whx = 123

          Dgy = 123

          Fyh = 123

3>     打开版本库下的KTCoder\conf\ authz文件,添加

        [groups]

        g_vip = Lz, Wfh

        [KTCoder:/]

        @g_vip = rw

        Fyh = rw

        Lyk = r

        Whx = r

        * =

        [KTCoder:/Kernel]

        Lyk = rw

        Fyh =

        [KTCoder:/Business]

        Whx = rw

  此authz文件权限分配结果是:

  1. Zg,Dgy, KTCoder项目无任何权限;
  2. Lz ,Wfh,整个项目所有文件读写权限;
  3. Lyk,Kernel读写,其他所有文件只读;
  4. Whx,Business读写,其他所有文件只读;
  5. Fyh, KTCoder、Business目录下文件读写,Kernel无权限。

4>     a. 权限可以分组,“g_vip = Lz, Wfh”,然后给组分配权限“@g_vip = rw”;b. “*  = ”表示任何人没有权限;c. authz在本库下时,[KTCoder:/Kernel] 中的根目录可以写成[Kernel]

SubVersion权限示例:http://coldtear.iteye.com/blog/28440

5>     权限在文件目录间父子继承、联合,以子目录为准。

九、           Apache服务安装及配置

  1. 双击httpd-2.2.25-win32-x86-openssl-0.9.8y.msi文件开始安装。
  1. 完成安装后,打开浏览器,输入地址http://localhost测试安装是否成功。
  1. 我的电脑à属性à高级à环境变量à系统环境变量Path新增“D:\Program Files\Apache Software Foundation\Apache2.2\bin”。
  2. 复制D:\Program Files\Subversion\bin下的so文件至D:\Program Files\Apache Software Foundation\Apache2.2\modules。
  1. 打开文件D:\Program Files\Apache Software Foundation\Apache2.2\conf\ httpd.conf找到下面两行,去掉前面的注释符#。

              #LoadModule dav_module modules/mod_dav.so

              #LoadModule dav_fs_module modules/mod_dav_fs.so

新增下面两行

    LoadModule dav_svn_module modules/mod_dav_svn.so

              LoadModule authz_svn_module modules/mod_authz_svn.so

  1. httpd.conf文件末,新增下一段代码

              <Location /svn>

              DAV svn

              SVNListParentPath on

              SVNParentPath D:/SVNRoot

              </Location>

在浏览器中输入http://localhost/svn/可访问svnRoot下所有版本库文件。

  1. 如果需要启用用户验证及其权限分配,添加如下

            <Location /svn>

            DAV svn

            SVNListParentPath on                               ‘如注销,则无法访问

            SVNParentPath D:/SVNRoot

            AuthzSVNAccessFile D:/SVNRoot/myAccess

            #Satisfy Any                                             ‘不认证时是否显示一级目录

            AuthType Basic

            AuthName "SubVerion LTong"

            AuthUserFile D:/SVNRoot/myUser

            Require valid-user

            </Location>

  1. 权限文件

  权限文件myAccess与SubVersion版本库权限文件配置格式一致。

  1. 用户密码文件

  用户密码文件与SubVersion版本库用户文件格式不一致,需要DOS下

htpasswd –cb myUser admin               ‘第一次创建用户文件

  然后输入密码两次,创建myUser后,可以新增用户

Htpasswd myUser fu                          ‘然后输入密码两次

十、           Eclipses vn插件

  1. 安装

http://welcome66.iteye.com/blog/1845176

  1. 使用

http://www.cnblogs.com/dongritengfei/archive/2010/03/03/1677308.html

http://subclipse.group.iteye.com/group/wiki/1619-subclipse-getting-started-guide-and-reference-b

十一、   Visual Studio2005 svn插件

  1. 安装
  2. 使用

http://blog.csdn.net/panderman/article/details/7707785

http://haner0926.blog.163.com/blog/static/2184154820071129111018599/

http://blog.163.com/haohengzhen@126/blog/static/76137910201211093727571/