1 什么是SVN? SVN全称为Subversion, 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。 许多人会把版本控制系統想像成某种 “时光机器”。 某些版本控制系統也是 SCM(software configuration management) 系统。 这些系統是特別设计来管理大量代码的, 而且具有许多专门针对软件开发的功能,像通俗易懂的程序语言, 或是提供编译软件的工作。 不过Subversion 并不是这样的系统; 它是一个通用的系统, 可用来管理任何类型的文件, 其中包括了程序源码。 版本控制是管理数据变更的一种技术。对于开发人员来说,它已经成为不可或缺的工具,因为他们经常修改软件代码,产生部分的变更,然后第二天再取消所有的变更。想象有一群程序员同时工作的情况你就能理解,为什么需要一个良好的系统来管理可能出现的混乱。 2 SVN服务器端安装与配置 2.1安装Apache 本安装基于windows操作平台,因为要搭建此项目管理服务器,所以必须要先安装Apache服务器。 (1)下载Apache 注意:Apache低于2.0.54的Windows版本的存在编译问题,不能与Subversion 1.2一起工作。2.2.X目前不能很好支持SVN 1.4.3。所以当前建议下载Apache 2.0.63版本。其他版本请在此http://httpd.apache.org/download.cgi下载。 (2)安装 下载完成后运行apache_2.0.63-win32-x86-no_ssl.msi。设置系统信息,在Network Domain下填入您的域名(比如:workyee.com),在Server Name下填入您的服务器名称(比如:www.workyee.com,也就是主机名加上域名),在Administrator's Email Address下填入系统管理员的联系电子邮件地址(比如:t.a.i@163.com),如果你的服务器是本地或者没有DNS名称,请直接输入IP地址。上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者(此三条信息也可在安装后进行修改,该文件位于Apache Group/Apache2/conf/httpd.conf文件)。下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动(如发生安装失败情况可以打开Apache Group\Apache2\conf\httpd.conf,编辑文件的Listen 80为其他可用的端口,然后用CMD进入命令行模式进入你安装apache的目录/apache2/bin输入apache -k install和apache -k start)。一般选择如下图所示。按“Next”继续。 ? 安装完成后浏览?http://localhost/?若成功,可看到如下图apache欢迎页面。 ? 2.2 安装SVN (1)下载SVN 在本实例中,选择下载svn-win32-1.5.4.zip此版本,其他版本可以在此下载http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 (2)安装 将svn-win32-1.5.4.zip压缩包解压,从svn-win32-1.5.4\bin 中将mod_authz_svn.so mod_dav_svn.so复制到Apache Group\Apache2\modules下,再将svn-win32-1.5.4\bin目录下的所有dll文件全部复制到Apache Group\Apache2\bin文件夹下。 修改Apache Group\Apache2\conf\httpd.conf文件: 找到以下两行并删除注释(删除前面"#") #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_module modules/mod_dav.so 在LoadModule部分的最后添加以下两行。 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so 重启apache看到下图状态栏显示Apache/2.0.63(Win32) SVN/1.5.4 DAV/2即表示安装成功。 ? 2.3 配置SVN (1)建立版本库 首先建立一个用于存在SVN项目的版本库,本例中在D盘驱动器中建立目录SvnTrac/svn,可通过如下命令建立版本库,当然如果你需要建立多个版本库只需将名称进行换名即可。 首先以cmd命令窗口进入svn-win32-1.5.4\bin目录结构下,输入: >svnadmin create --fs-type fsfs D:/SvnTrac/svn/projects回车,等待提示创建完成;完成后则进行相关密码以及权限设置。 (2)设置密码文件 以cmd命令窗口进入路径Apache Group\Apache2\ bin目录下,然后输入: > htpasswd -c D:/SvnTrac/svn/projects/conf/<filename> <username> 本例中filename名称使用pw,username名称使用admin(注意filename无需后缀名),这样便可在SvnTrac/svn/projects/conf目录下创建一个用户名为admin的pw文件,此文件将在后面配置权限所用。 部分添加用户操作,可使用如下命令: 添加用户:>htpasswd -d filename <username> 添加用户不带MD5加密用户:>htpasswd -p filename <username>(windows平台下默认是MD5加密) 删除用户:>htpasswd -D filename <username> (3)设置权限文件 用文本编辑器或在CMD下在SvnTrac/svn/projects/conf路径下生成名为access的文件,此名称将在Apache Group\Apache2\conf\httpd.conf配置文件中所用,此处不使用扩展名。 编辑一下内容: [groups] 内容含义为根目录下任何人有读权限,administrator组默认有读写权限;user组对projects也有读写的权限。admin和allen为对应组员,增加组员用","搁分。备注: 如果有中文路径,那要把文件存成UTF8格式,不建议使用中文路径,这在编程当中是严格禁止的。 (4)配置Apache <Location /svn> 备注: 如果使用<Location /svn/>可列出D:/svntrac/svn/projects 下的版本库,若为<Location /svn>则不能访问http://127.0.0.1/svn下的项目,而只能这样访问,如http://127.0.0.1/svn/<projectname>。注意配置信息时不要出现不必要的空格,以免apache启动出错。 配置内容说明 设置
administrator = admin
user = allen
[/]
* = r
@user = r
@administrator = rw
[projects:/]
@user = rw
DAV svn
SVNPath "D:/svntrac/svn/projects"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile "D:/svntrac/svn/projects/conf/pw"
AuthzSVNAccessFile "D:/svntrac/svn/projects/conf/access"
Require valid-user
SVNAutoversioning on
ModMimeUsePathInfo on
</Location>
解释
<Location> 意思是Subversion版本库的URL是http://ipaddress/svn/?
DAV svn 告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块?
SVNPath 告诉Subversion需要查看的版本库位于D:/var/svnhome/projects之下?
AuthType Basic 激活基本认证,就是用户名/密码?
AuthName 用来说明弹出要求输入认证信息的对话框信息,可以使用中文.?
AuthUserFile 指定使用认证密码的文件?
AuthzSVNAccessFile 位置Subversion版本库的访问控制权限的路径文件?
Require valid-user 指定只有输入了正确的用户/密码的用户可以访问URL
重启apache并访问http://127.0.0.1/svn,如出现下图即表示SVN安装配置成功。
详细解决方案
基于Windows的SVN装配与配置
热度:2807 发布时间:2013-02-26 00:00:00.0
相关解决方案
- my lovely windows , see you!该如何处理
- Windows Mobile开发中的有关问题
- 简单有关问题-高分:Windows Pocket 2003 平台支持java 开发吗?哪位指点一下!多普达O2 Xda的机器
- Windows Moblie5上是否有完整兼容的J2SDK1.4或5.0版本的虚拟机?解决思路
- windows mobile中j2me的疑问,该怎么解决
- Socket通讯 windows mobile操作系统支持吗
- windows mobile 6.1下有支持蓝牙传输的java虚拟机吗?解决思路
- java的jdk-6u34-windows-i586和eclipse安装有关问题
- jdk-6u7-windows-i586-p.exe 后边的-p是什么意思
- 这样的 Windows Mobile 应用开发工程师工资应该要多少?解决思路
- Windows 8之父Steven Sinofsky将离开微软,微软官方已确认解决方法
- Windows 八之父Steven Sinofsky将离开微软,微软官方已确认
- MultiRow for windows forms解决思路
- Windows Form 中怎么将 treeview 的节点与页面内容关联
- InputMan for Windows Forms 5.0J 试用版的等待时间有关问题
- DevExpress的WinForm控件都沿袭自System.Windows.Forms.Contrl吗
- Free Windows Forms Controls——Krypton Toolkit解决思路
- ActiveX 安装出现 Windows Installer 有关问题
- vc写的 windows service 控制台程序有关问题
- c++/cli windows form有关问题
- Windows media player控件编程播放avi只有声音没图像啊解决方案
- 怎样把Html文本转换为System.Windows.Form.HtmlDocment对象!解决方法
- 求VC++ 2008 >> CLR >> Windows 窗体应用程序实例,该如何处理
- windows 窗口进程lParam参数的,高低两个宏定义
- CLR Windows Forms Aoolication 程序怎么创建新的Dialog
- j# 里如何定义和 C#同样功能的 override void DefWndProc(ref System.Windows.Forms.Message m) 多谢,很
- dundas chart for windows 怎么调整柱状图的宽度,怎么设置柱状图的起止点
- windows service装配服务程序
- windows server 2008 + IIS 7.5 上 网站自定义权限过滤有关问题
- C# windows services 使用IDictionary 有关问题?