长久以来,在开源世界中,CVS(Concurrent Versions System)一直都是版本控制的首选。但是现在用户有了另一个选择,就是Subversion。Subversion是下一代版本控制系统,能替代CVS,项目主页是http://subversion.tigris.org。
Subversion是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件, 其中包括程序源码。
它的初始目标很明确,实现绝大部分CVS的已有功能;充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够顺利迁移到Subversion上。和CVS相比,它有很多优点,例如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与标记等。。。
如果你使用过CVS就能体会到上文所说的Subversion好处了,比如目录版本控制,目录的改名等。对于Subversion的原子提交,我想多说几句,大家可以想象,我们一般做一个修改,可能需要改动多个文件,尤其现在大家多对分层已经趋之若鹜了,除非你还在用着哪种什么东西都写在一起的语言。(比如PB?呵呵,感觉好像是这样的东西。)如果你的一次提交过程中,由于网路原因或者机器的硬件原因或者根本是你自己落下了一些文件没提交,在逻辑意义上这次提交是不完整的,Subversion的原子提交能很好的解决这个问题,个人认为这也是对于CVS最大的改进了,这有些类似数据库的事务。
在正式安装配置Subversion之前我们先来作点准备工作,由于我们以后会经常在命令行下执行命令,每次打开一个新的命令行窗口默认的当前目录都是C:\Documents and Settings\$UserName,这样在执行命令之前都要切换目录,很麻烦,所以我们先来解决这个问题。在“开始”-“运行”中输入“regedit”,打开注册表。找到\HKEY_CLASSES_ROOT\Folder\shell,如果没有shell,可以在Folder下新建一个名为shell的键,在shell下新建一个名为“命令行(Command Windows)”的键,在这个键之下再建一个新的名为“Command”的键,设置默认值为“cmd /K cd /d %L”。 这样当我们选中一个目录,在右键上下文菜单里面就多了一个“命令行(Command Windows)”的选项,单击这个选项就可以打开一个命令行窗口并且快速切换到当前选中的目录。
一、软件下载:
apache: http://www.apache.org/ (apache2.2对tortoiseSVN的支持有点问题,故安装apache2.0.x)
subversion: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
tortoiseSVN: http://tortoisesvn.net/
二、软件安装
(1)安装apache2.0.x
1.域名的设置:
localhost
localhost
邮箱随便填
2.解决迅雷占用80端口的问题:
将其设为随机端口
(2)安装svn1.4.6+
apache2.0.x支持svn1.4.6
(3)安装tortoiseSVN 1.3.2+
三、subversion配置
Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。Apache Http Server是基于Apache Http Server的Subversion,这样做几个好处:
A.能使用WebDAV协议。
B.通过Apache以HTTP方式穿透防火墙,便于在互联网环境使用,能使用浏览器作为客户端工具浏览源码仓库。
C.可以很容易的支持到SSPI(Windows域认证)和LDAP(AD?),这些都是Apache本身就支持的。
D.能得到比较完善的Apache安全认证系统,比如SSL加密连接。
第一步,打开Apache安装目录下的httpd.conf文件
找到下面的语句:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
将上面语句前面的#去掉(注:可能已经被注释掉了)
第二步,在这句后面追加,如下语句:
LoadModule dav_svn_module "{svn安装目录}/bin/mod_dav_svn.so"
LoadModule authz_svn_module "{svn安装目录}/bin/mod_authz_svn.so"
注:{svn安装目录}就是svn-win32-1.4.5.zip解压后你放的目录(注:可能SVN已经替你加上了)
第三步,在这个文件的最后,追加如下语句:
<Location /svn>
DAV svn
SVNParentPath d:/mysvnroot (这是svn父目录,创建的svn repository一定要在改目录下,且斜杠不能写反了!)
</Location>
第四步,创建仓库
根据apache的配置文件的设置建立目录:d:/mysvnroot,然后用svnadmin create d:/mysvnroot/test命令创建仓库,命令执行成功之后,会在d:/mysvnroot/test下面生成很多的文件和目录。(也可以新建一个文件夹,右击tortoiseSVN>create repository here...)
第五步,运行
重新启动Apache Server
在浏览器中输入网址:http://localhost/svn/test/
这时候,看到页面显示:
Revision 0: /
Powered by Subversion version 1.3.2 (r19776).
安装成功,接下来将进行权限设置。
第六步,svn使用apache的权限管理对档案库及目录进行读写管理
修改上面第三步的内容为:
<Location /svn>
DAV svn
#SVNListParentPath on
SVNParentPath d:/mysvnroot
### apache auth begin
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile d:/mysvnroot/apache_authz (保存用户名和密码,这个文件需要用Apache的htpasswd工具创建)
Require valid-user
### apache auth end
### svn auth begin
# our access control policy
AuthzSVNAccessFile d:/mysvnroot/svn_authz (保存用户访问的权限策略)
# authentication if necessary
#Satisfy Any
### svn auth end
</Location>
第七步,用htpasswd工具创建apache_authz 文件,建立保存用户名和密码的文件
htpasswd -cm d:/mysvnroot/apache_authz zx
-c 表示创建文件,-m表示对密码用md5加密
然后,会提示输入两次密码,以后再加用户就不需要用-c了,直接用-m即可。
htpasswd -m d:/mysvnroot/ apache_authz yh
然后,会提示输入两次密码
下面建立控制用户访问权限的文件svn_authz
在d:/mysvnroot中新建一个记事本文件,输入下面的内容:
[groups]
admin = zx
test-developers = yh
everyone = @test-developers
[test:/]
@admin=rw //这表示,仓库test的根目录下的访问权限
@test-developers = r
[test:/test] //test仓库下test目录的访问权限
@admin = rw
@test-developers = rw // 如果在前面加上@符号,则表示这是个群组权限设置 r表示读权限 w表示写权限
第八步,配置完成,重新启动Apache server
在浏览器地址栏中再次输入:http://localhost/svn/test/
这次要输入密码才能进入。
第九步,将一个项目文件夹导入到svn中
右击要导入的文件夹,tortoiseSVN>import...
键入地址:http://localhost/svn/test/
如果设置了密码,则会要求输入用户名和密码
第十步,从svn中将项目checkout
任意右击 SVN checkout...
键入地址 http://localhost/svn/test/
选择目的地址即可
第十一步,解决冲突
当多个人同时提交一个文件的修改时,可能产生冲突。
冲突时,会生成三个临时文件,同时冲突的文件有感叹号标识。
三个文件分别是:.mine(我的文件) .r版本号-1(前一个版本) .r版本号(当前最新版本)
右击冲突文件; tortoiseSVN>Edit conflicts...
修改后再提交即可。
分享到:
相关推荐
### 企业级Subversion/SVN案例分析知识点 #### Subversion概述 Subversion(SVN)是一个开源的版本控制系统,被广泛用于文件和代码管理。它允许用户保存修订历史记录,从而可以追踪文件的历史更改,并在必要时回滚...
- 使用yum安装SVN: `yum install subversion` - 验证安装: `svnserve --version` 2. **创建资源库** - 资源库目录需在`/var/svn/`下以确保能设置开机自启: `mkdir -p /var/svn` - 创建SVN资源库: `svnadmin ...
Debian 下 SVN 服务器的安装与配置 本文将详细介绍 Debian 环境下 Subversion ...本文详细讲解了 Debian 环境下 Subversion 服务器的安装和配置过程,包括安装 Subversion、创建 SVN 仓库、访问 SVN 仓库等步骤。
至此,你已掌握了在CentOS上安装和配置SVN 1.8.9的全过程,这将极大地提升团队协作和项目管理的效率。如果你需要支持更多的协议或进行更复杂的配置,可以查阅官方文档或社区资源以获取更多信息。
总的来说,配置Linux上的SVN服务器涉及安装SVN、创建仓库、配置Apache、设置用户和权限。通过这种方式,你可以有效地管理团队的源代码,确保代码的安全性和团队协作的顺畅。记住,定期审查和更新权限策略是保持系统...
在本教程中,我们将深入探讨如何在CentOS 6环境下安装Subversion 1.7版本,以及如何在MyEclipse集成开发环境中安装并配置SVN插件。 首先,我们开始CentOS 6上Subversion 1.7的安装步骤: 1. **更新系统**:在安装...
【Apache和SVN安装配置说明】 Apache与Subversion(简称SVN)的组合在Linux环境中是常见的版本控制系统和Web服务器的搭配,用于管理和共享代码仓库。以下是对标题和描述中涉及的知识点的详细说明: **Apache安装...
1. 安装SVN apt-get install subversion 2. 建立svn仓库 1). 建立svn目录:mkdir /home/.svn(使用隐藏目录) 2). cd /home/.svn 3). mkdir astar 4). 创建仓库astar:svnadmin create /home/.svn/astar,...
配置Subversion安装,确保它与系统环境兼容,并指定安装路径: ```bash ./configure --prefix=/usr/local/svn ``` 编译和安装Subversion: ```bash make sudo make install ``` 安装完成后,我们需要创建一个SVN...
在本教程中,我们将深入探讨SVN的安装、配置以及基本操作,以帮助你更好地理解和应用这一强大的工具。 **一、SVN安装** 1. **Windows**: 对于Windows用户,可以下载TortoiseSVN,它是一个带有图形界面的SVN客户端...
### Linux下Subversion (SVN) 的安装与配置详解 #### 安装Subversion 在Linux环境下安装Subversion(简称SVN),有两种主要方法:源码编译安装和使用包管理器安装。 **1. 源码编译安装** 首先,下载Subversion的...
《SVN安装配置详解》 SVN(Subversion)是一种版本控制系统,用于管理代码库,跟踪文件和目录的更改,便于团队协作。本文将详细阐述SVN的安装配置过程,帮助你快速上手。 首先,确保系统已安装必要的软件包。在...
在 Ubuntu 系统上安装并配置 Subversion (SVN) 服务器是一种常见的需求,尤其是对于那些希望在本地网络环境中进行版本控制的团队来说。下面我们将详细介绍如何在 Ubuntu 系统上安装和配置 SVN 服务器。 ##### 1. ...
本文档旨在介绍如何在macOS Lion (10.7)上安装并配置Subversion 1.6.17,包括其客户端和服务端组件。 #### 二、安装包内容 安装包包含了一个适用于i386和x86_64架构的通用版本的Subversion 1.6.17,具体包括: 1....
5. **配置svn服务**:在CentOS中,通常使用Apache HTTPD服务器作为svn的前端,因此需要安装httpd和mod_dav_svn模块: ``` yum install -y httpd mod_dav_svn ``` 6. **创建svn仓库**:在适当的位置创建一个新的...
在Ubuntu 9.04操作系统中配置SVN(Subversion)服务器是一项常见的任务,它允许团队成员协同工作,管理代码版本。以下是如何在Ubuntu上设置SVN服务器的详细步骤: 首先,确保安装了Subversion和Apache2的SVN模块。...
这篇博文将详细介绍如何在CentOS环境下安装和配置Subversion服务器。 首先,确保你的系统是最新的。打开终端并运行以下命令来更新系统包: ```bash sudo yum update -y ``` 接下来,我们需要安装Subversion的依赖...