前四节主要在说客户端,本节开始介绍更深入的配置。
我们之前的内容都是在本机设置版本库,但在多数情况下,都是多人开发的网络环境,版本库则是位于服务器之上。
先来看一下Subversion的体系结构,如图所示:
在这个图中可以看到Subversion将整个系统分成了三层。
第一层是版本库层,可以采用两种方式实现。一种是Berkeley DB,另一种是FSFS。它们的区别我们会在后续内容中介绍。
第二层我们姑且叫它访问层,是对版本库访问方式的抽象。图中定义了三种方式访问版本库,它们分别是DAV、SVN和Local。DAV是通过Apache服务器实现对版本库的访问,SVN是由subversion自带的svnserve实现对版本库的访问,最后一种Local其实就是我们前四节一直在使用的file://方式访问。
第三层就是客户层了。我们使用的svn import、commit等命令行以及TortoiseSVN,还有后面要介绍的Subversive、Subclipse等,都是属于客户端这一层。
所以实际上版本库服务器有三种运行方式,Apache、svnserve和本机直接访问。前面几节已经将本机运行讲了很多次了,我们会单独再使用使用两节来介绍Apache和svnserve。
最后再说说subversion版本库的文件结构和基本原理。
svn版本库包括以下一些目录和文件:
conf:所有配置文件,供svnserve使用
db:存储版本数据的仓库
hooks:存储hook脚本
locks:存储锁信息
format文件
readme.txt
其中format和readme.txt是文件,如果使用TortoiseSVN创建版本库,还会有一个图标。
此外,有三个目录在svn中是有着约定含义的,它们是trunk、branches和tags。注意,这里说的约定含义是针对用户的,而不是针对svn的。也就是说,用户应该在这三个目录中存储约定的内容,但svn并不约束必须要存储什么。一般来说,trunk目录存储主版本,branches中存储分支版本,而tags中则存储发布的版本。但用户将它们存储在其它目录中,也不会有什么问题。对于svn来说,没有主版本和分支版本的概念,只是与cvs相同的一种习惯延续。这段内容可能讲得不是很清楚,有时候我会单独对分支与合并进行专门介绍。
所有的版本信息会存储在db/revs目录中,svn在版本管理上使用增量复制。也就是说,每次你提交版本数据时,它虽然都创建一个新文件,但这个文件中只包含变化信息,而不会保留所有数据。因此,你不必担心版本库数据爆炸问题,而且速度也很快。此外,svn在版本管理上是针对整个目录的。也就是说,即使你只提交一个文件,整个项目的版本号都会跟着一起变化。实际上,svn会在db/revs目录中以版本号为名创建一个新文件,这个新文件中存储变化数据。
- 大小: 54.1 KB
分享到:
相关推荐
### SVN简易教程知识点详解 #### 一、简介 **Subversion**(简称SVN)是一种分布式版本控制系统,...通过这些内容的学习,你可以更好地理解SVN的基本概念、体系结构以及如何在实际项目中使用SVN进行版本控制和管理。
**Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Web应用程序框架,用于构建可维护性高、结构清晰的Java应用。Struts2的核心功能包括动作调度、结果映射、拦截器链、插件体系等。开发者可以通过配置...
4. URL 和工作副本:理解 SVN 中的 URL 体系结构和工作副本的关系。 5. 故障排查:解决 SVN 使用中遇到的问题和错误。 **Windows下svn初级使用手册**: 在 Windows 上使用 SVN,需要安装图形化客户端,如 ...
在版本号1.11.1.28492的x64体系结构下,它提供了强大的版本控制系统,帮助用户管理和跟踪项目源代码的变更。本文将详细阐述如何在Windows 10 64位系统上,结合Visual Studio 2017(VS2017),进行TortoiseSVN的安装...
9. **团队协作**:Eclipse支持版本控制系统,如Git和SVN,教程会指导你如何进行版本控制操作,如提交、拉取、合并等。 10. **偏好设置**:Eclipse允许用户自定义界面布局、快捷键、字体大小等,以适应个人的工作...
总的来说,《廖雪峰教程》是一份全面且深入的技术学习资源,涵盖了从基础编程到高级应用的广泛知识,对于提升个人的编程技能和理解IT技术体系有着极大的帮助。无论是初学者还是有一定经验的开发者,都能从中受益匪浅...
Eclipse以其强大的代码编辑、调试、构建和管理功能,以及开放的插件体系结构,赢得了全球开发者的喜爱。 二、Eclipse的安装与配置 1. 下载:访问Eclipse官方网站,根据操作系统选择合适的版本进行下载。 2. 安装:...
这里提到了使用源代码管理工具,如SVN,来管理项目代码的版本,确保代码的安全和可追溯性。 ### 使用Visual AssistX提高开发效率 Visual AssistX是一个Visual Studio的插件,可以显著提高C++开发的效率。通过它,...
【压缩包子文件的文件名称列表】虽然没有具体列出,但通常会包含视频文件(可能为.mp4或.wmv格式)、讲义文档(如.PDF或.docx)、练习文件、代码示例等,形成一个完整的教学体系。这些资源共同构成了一套完整的自学...
### 软件工程基础知识教程知识点详述 #### 第1章 简介 **软件工程定义** - **学科性质**: 软件工程是一门综合性的学科,它结合了计算机科学、工程学以及数学等多个领域的知识。 - **研究内容**: 主要关注于如何...
2. **专业书籍**:《嵌入式系统原理与实践》、《ARM体系结构与编程》等经典著作。 3. **社区论坛**:如CSDN、电子发烧友网等,可以交流学习心得和技术问题。 ### 总结 通过上述分析,我们可以看出软考嵌入式系统...
### Maven使用教程详解 #### Maven概述 Maven是一款强大的项目管理工具,主要应用于Java项目的构建、依赖管理和项目信息管理。其核心价值在于提供了一套标准化的项目构建流程,简化了项目构建过程中的复杂性,提高...
Eclipse平台的核心特性包括插件体系结构,使得其功能可扩展性极强。 二、安装Eclipse 首先,你需要从Eclipse官网下载对应操作系统的版本。安装过程中,选择合适的安装路径,然后按照向导完成安装。安装完成后,启动...
- 资源管理器视图:显示文件系统的结构,便于管理项目文件。 3. **创建项目** - Java项目:用于编写标准Java应用程序或库。 - Web项目:支持创建动态Web项目,包含Web应用的所有组件,如HTML、CSS、JavaScript...
matlab如何编写代码工具解决方案 该存储库提供了各种示例和教程,以提高您使用开发工具的...还包括一些示例,这些示例说明了如何构建支持Arm架构的多体系结构docker映像以及其他Arm docker映像,例如如何在AArch64上
9. **插件系统**:Eclipse的强大之处在于其插件体系,开发者可以通过编写插件扩展Workbench的功能,如添加对新语言的支持,或集成第三方工具。 10. **调试(Debugging)**:Eclipse Workbench的调试功能强大,支持...
2. **Java开发基础**:教程可能从Java语言的基础知识开始,包括变量、数据类型、控制结构(if-else、switch、for、while)、函数、类与对象等。此外,还会讲解面向对象编程的核心概念,如封装、继承和多态。 3. **...
在创建过程中,你需要为项目命名,选择JRE版本,并设置项目的源代码目录结构。 4. **编写Java代码**:Eclipse提供了强大的代码编辑器,支持自动补全、语法高亮和错误检查。在src目录下的包内创建Java类文件,然后...