svn关于版本库、工作目录的理解

服务器环境基本上已经搞好,准备着手项目环境的搭建,后继项目将进入团队开发的模式,必须得弄个版本管理的工具了。而对于版本管理工具,本人了解得不多,之前只是使用过SVN,那就SVN吧。废话不多说,进入正题。

  了解过SVN的人都知道,svn分为服务端和客户端。服务端主要是记录和维护所有客户端对版本库进行过的操作,客户端则是每个开发人员用来进行自己独立版本的开发。搭建svn服务端的过程并不难。度娘或google,很容易就可以找到相关的资料,因此本文就不再赘诉。本文并不是记录如何搭建一个svn服务器,而是讲一下svn服务端的基本概念和命令的理解。

  服务器安装好subversion(svn服务端)后,svn服务器在工作的时候,首先需要有一个版本库,版本库通过 svnadmin create path命令来创建(例如我创建的版本库svnadmin create /home/svn/pro),此版本库包含了svn用于版本管理的一些信息,目录锁、hook、数据仓库的信息(即文件目录结构和文件数据)、基本的配置信息等。conf目录下,包含了用户、权限等配置信息的文件。这里不做详细分析了,想了解的朋友,可以去google下各个配置文件的配置方法,一般都有对配置文件详细的说明。

  建立好版本库之后,此时版本库是一个干净的版本库。我们要给仓库添加数据,有两种方法。

      一种是在客户端svn->add,svn->commit文件的形式,通过svn客户端给版本库添加数据。用过SVN的朋友应该都很清楚,这种方法就不再多说。另外一种形式就是通过svn import命令,它的格式是svn import /home/svn/pro /data/myproject -m "注释"。刚开始用svn import的时候,它让我迷糊了好久,以上面为例,以为/data/myproject 就是文件版本库的目录,在本地工作目录对版本库做修改的时候,这个/data/myproject也会随之改变。而事实完全不是如此,svn服务端在工作的时候,所有的文件信息都是存放在svnadmin create出来的版本库的数据仓库中,具体的路径是版本库下面的db目录下(对应上面就是 /home/svn/pro/db)。简单来说就是,svnimport只是简单的将指定目录的数据和结构导入到svn版本库的数据仓库(导入数据的同时记录了被导入数据的目录结构和文件内容)。svn import 将 /data/myproject导入到版本库中后,/data/myproject目录和svn版本库没有任何关系,你可以把它删除,对svn版本库不会有影响,如果删除了它,出现使客户端工作目录无法更新的情况,重新checkout即可。

  开发人员的工作目录,是一份版本库的工作拷贝,不同开发人员拥有自己的一个工作目录。通过客户端的update、commit等操作进行项目的并行开发。不知不觉,唠叨了这么多,用过svn或其它版本管理工具的朋友,应该都可以理解它。因为,也不太累赘了。

  本人在搭建svn环境的时候,对于它不了解,导致花了不少冤枉时间,查了不少资料才明白,趁着现在还记得,在这里记录下来,方便以后查阅。本人知识有限,如果有哪些理解有误的地方,欢迎大家指正,谢谢!

posted @   vathena  阅读(11119)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示