SVN版本控制安装配置说明
版本控制好工具有SVN、CVS、VSS等多种,他们的优劣在此不说明,请网络参阅。
SVN支持多种平台,此文仅描述Windows平台下使用说明。
SVN客户包含客户端和服务端。Windows平台下客户端使用TortoiseSVN,而服务端可使用SubVersion或者VisualSVN Server。
两者区别如下:
- SubVersion服务需要封装SVN Serve为Windows Service,才能自启动;
- SubVersion控制权限,需要通过修改配置文件;
- SubVersion想通过浏览器访问,需要安装配置Apache。
而VisualSVN Serve集成了Subversion和Apache,省去了以上所有的麻烦。安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。
本文描述内容针对SubVersion使用。因为要的就是原始、整洁和稳定,也更接近Linux使用方式。
一、 下载安装
1. 下载
- 服务器:Setup-Subversion-1.8.0-1.msi
- 客户端:TortoiseSVN-1.8.5.25224-win32-svn-1.8.8.msi
- Apache服务:httpd-2.2.25-win32-x86-openssl-0.9.8y.msi
注意,此3个软件版本有可能不匹配。
2. 安装
一般情况下,Subversion服务器仅供局域网/本地使用,所以不需要Apache服务器。如需Apache服务器,可以参考《Apache服务安装及配置》。如出现无法安装msi文件,或许需要下载安装新windows installer。
1> 服务器安装
- 双击Setup-Subversion-1.8.0-1.msi,一直下一步,完成svn服务端软件安装。
- 配置系统环境变量Path新增D:\Program Files\Subversion\bin(注意本文安装路径是D:\Program Files\Subversion)。
- 进入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来查看相关操作选项。
四、 配置用户和权限
- 打开版本库D:\svnRoot\repose1\conf\svnserve.conf文件,把里面的被# 注释的password-db = passwd,去掉前面的 # 注释符,并且前面不能有空格。这样将会使用confpasswd文件作为密码数据库。
- 修改密码数据库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版本库。
六、 开始新的项目
- 添加新的文件到版本库Import
选中待管理的文件所在文件夹,如E:\codes\NTPacket,単击鼠标右键,选择“TortoiseSVN”à“Import”à确定,在身份认证弹出框,输入passwd文件里正确的用户名和密码,即可上传成功。
- 签出版本库里面的项目Checkout
选择一个空白地方或者新建一个空文件夹,単击鼠标右键,选择“SVN Checkout”,然后确认在身份认证弹出框,输入passwd文件里正确的用户名和密码,即可签出。
- 修改文件Commit及Update。Checkout到本地的文件,可以修改,修改后选中当前文件或其目录,鼠标右键,弹出菜单多出“SVN Update”及“SVN Commit”, Commit提交此次修改,Update重新下载服务器文件至本地。
- 导出版本库Export。checkout下载文件到本地后,与svn服务器有仍有状态关联,可以修改提交等。而export仅仅是下载文件到本地,之后与svn服务器没任何关联,修改后也无法提交。
七、 服务自启动
一般情况,启动SVN服务,需要每次执行步骤三,DOS窗口还必须一直开着。这样很不方便,可以把步骤三封装成Windows Service自启动。
- 新建一个空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.注意路径中的”号及\书写正确。
- 双击svnSer.bat文件,完成Windows Service注册。
- 启动svnlt服务有两种方式:第一种,重启电脑,svnlt服务会自启动;第二种,在DOS界面执行net start svnlt语句完成启动。
net start svnlt (启动svn版本库服务)
net stop svnlt (停止服务)
sc delete svnlt (删除服务,后需重新注册svnlt服务)
八、 多版本库与用户权限配置
- 多版本库结构
一般情况,部门组织或开发团队有多个项目需要版本控制,可多个项目共用以一个版本库,也可以每一个项目对应一个版本库,建议用后者。
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项目版本库。
- 用户权限配置
人员情况(权限举例):
- Lz,公司老总,分配只读所有文档的权限;
- Wfh,Zg,项目经理,分配自己管辖项目读写权限,及其他项目只读权限;
- Lyk,KTCoder项目核心开发人员,Kernel模块唯一开发者,Kernel读写,其他读写;
- Whx,KTCoder项目开发人员,Kernel模块只读,Business模块读写;
- Dgy,MobilePlatform项目开发人员;
- 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文件权限分配结果是:
- Zg,Dgy, KTCoder项目无任何权限;
- Lz ,Wfh,整个项目所有文件读写权限;
- Lyk,Kernel读写,其他所有文件只读;
- Whx,Business读写,其他所有文件只读;
- 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服务安装及配置
- 双击httpd-2.2.25-win32-x86-openssl-0.9.8y.msi文件开始安装。
- 完成安装后,打开浏览器,输入地址http://localhost测试安装是否成功。
- 我的电脑à属性à高级à环境变量à系统环境变量Path新增“D:\Program Files\Apache Software Foundation\Apache2.2\bin”。
- 复制D:\Program Files\Subversion\bin下的so文件至D:\Program Files\Apache Software Foundation\Apache2.2\modules。
- 打开文件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
- httpd.conf文件末,新增下一段代码
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath D:/SVNRoot
</Location>
在浏览器中输入http://localhost/svn/可访问svnRoot下所有版本库文件。
- 如果需要启用用户验证及其权限分配,添加如下
<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>
- 权限文件
权限文件myAccess与SubVersion版本库权限文件配置格式一致。
- 用户密码文件
用户密码文件与SubVersion版本库用户文件格式不一致,需要DOS下
htpasswd –cb myUser admin ‘第一次创建用户文件
然后输入密码两次,创建myUser后,可以新增用户
Htpasswd myUser fu ‘然后输入密码两次
十、 Eclipses vn插件
- 安装
http://welcome66.iteye.com/blog/1845176
- 使用
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插件
- 安装
- 使用
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/
SVN版本控制安装配置说明的更多相关文章
- SVN 版本控制安装
客户端 一路点击next即可 注意事项: 这个一定要选,否则后面使用会出现问题. 选择下拉菜单的第一项
- 版本控制工具svn的安装与简单使用
版本控制工具多用于多人协作开发项目中,这不同于个人开发项目,想把自己代码怎样放置都可以,而且删除了代码很难查找. 版本控制工具类似于个人处理钱的过程,放于自己口袋管理类似于个人开发情形,如果自己钱丢了 ...
- CentOS下 SVN版本控制的安装(包括yum与非yum)的步骤记录。
一.yum安装 rpm -qa subversion //检查是否安装了低版本的SVN yum remove subversion //如果存储旧版本,卸载旧版本SVN 开始安装 yum -y ins ...
- CentOs下 SVN版本控制的安装(包括yum与非yum)
一.yum安装 rpm -qa subversion //检查是否安装了低版本的SVN yum remove subversion //如果存储旧版本,卸载旧版本SVN 开始安装 yum -y ins ...
- SVN版本控制工具使用学习
SVN版本控制工具使用学习 Subversion是优秀的版本控制工具. 1.下载和搭建SVN服务器 http://subversion.apache.org/packages.html 类型有5种,推 ...
- 基于腾讯Centos7云服务器搭建SVN版本控制库
基于腾讯Centos7云服务器搭建SVN版本控制库 最近在和小伙伴组队参加一个关于人工智能的比赛,无奈不知道怎么处理好每个人的代码托管问题,于是找到了晚上免费svn托管服务器的服务,但是所给的免费空间 ...
- SVN的安装以及和eclipse的结合使用
SVN概述 l 通常软件开发由多人协作开发,如果对代码文件.配置文件.文档等没有进行版本控制,将会出现很多问题: l 备份多个版本,占用磁盘空间大 l 解决代码冲突困难 l 容易引发BUG l 难于追 ...
- SVN版本控制图标未显示或显示异常解决方法
SVN版本控制图标未显示问题解决方法,刚开始遇到这个问题的时候,好苦恼.经过“千辛万苦”的努力,终于得以解决,分享给大家,希望能帮到各位哦! 工具/原料 SVN安装包 方法/步骤 首先安装 ...
- 如何在一个ubuntu系统上搭建SVN版本控制工具
有话说,由于公司项目部署需要,将Windows工程迁移到Linux,通过调查确定使用Ubuntu的Linux操作系统.那么如何快速搭建和Windows一样快捷方便的开发环境就很重要了.本文讲述如何在一 ...
随机推荐
- C#解压、压缩RAR文件
using System; using System.Collections.Generic; using System.Text; using System.IO; using Microsoft. ...
- Android 多渠道打包原理和使用
每次中午吃饭总会和技术同学聊天.当做 iOS 开发的做安卓开发的人员在一起的时候,他们中间又多了一个话题:iOS 开发难还是安卓开发难. 这个时候做安卓开发的同学最激动说安卓开发要自己画界面.机型复杂 ...
- Bootstrap 貌似不错,先做一下记录
Bootstrap 简洁.直观.强悍的前端开发框架,让web开发更迅速.简单. http://www.bootcss.com/
- sql 中 case when 语法(转)
sql语言中有没有类似C语言中的switch case的语句?? 没有,用case when 来代替就行了. 例如,下面的语句显示中文年月 select ...
- http://blog.csdn.net/carolzhang8406/article/details/7196011
http://blog.csdn.net/carolzhang8406/article/details/7196011
- 在Android手机上安装linux系统
在anroid手机中安装fedora系统.记住不只是教你安装fedora系统. 需要的备注与软件 1.一个已经root的Android手机,记住是root后的,root后的,root后的.(重要的事情 ...
- 到底DAO是什么?为什么要有它的存在?
Data Access Object 数据访问接口,就是访问数据库方法的 interface 1. DAO用来封装Data Source的..就比如,Connection conn = DAOFa ...
- Java多态的体现之接口
/** * * @author Administrator * 功能:接口体现多态 */ package com.test4; public class Test { public static vo ...
- ASP.NET控件Button (e.CommandArgument的使用方法)
e.CommandArgument的使用方法 1. 在 Web 窗体页上显示普通按钮 (Button) 控件. <asp:Button id="MyButton" Text= ...
- 执行gem install dryrun错误
ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for ...