SVN简介

SVN是什么

Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部分。
SVN相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。

什么是版本控制

所谓的版本控制,就是记录项目代码文件夹和文件的每一次改动,并为每次改动编上序号,也叫做版本号,用于存储、追踪文件夹和文件的修改历史。
通过版本控制软件,我们可以对项目代码的修改历史进行查看,或者直接把代码恢复到以前的一个版本代码。

SVN工具

客户端工具:TortoiseSVN https://tortoisesvn.net/downloads.html
服务端工具:VisualSVN https://www.visualsvn.com/server/download/

服务端工具用于在服务器上创建代码仓库,添加成员账号。
客户端工具用于 checkout检出,commit提交, update更新代码等操作。

SVN工作原理

管理员使用SVN服务端工具在服务器上建立源代码仓库用来存放项目代码,并创建分配成员账号,这些由源代码库管理员统一管理。
每个成员用户使用SVN客户端工具,根据管理员提供的账号密码及url下载代码到本地(checkout),然后本地修改,测试,提交。

  • 例如项目demo, 现有成员A和B,目前项目版本为100
  • A再次修改代码,则先更新代码(update),然后本地修改,测试OK后提交(commit)并填写备注信息,此时项目demo版本为101。
  • B又要修改代码,同样先更新代码(update),然后本地修改,测试OK后提交(commit)并填写备注信息,此时项目demo版本为102。
  • 后来管理员创建的新成员账号给C,让C修改代码中的bug。
  • C根据管理员提供的账号密码和url,使用SVN客户端工具将代码下载到本地(checkout),然后本地修改,测试OK后提交(commit)并填写备注信息,此时项目demo版本为103。
  • 后来,C要再次修改,则先更新代码(update),然后本地修改,测试OK后提交(commit)并填写备注信息,此时项目demo版本为104。
  • 也就是成员修改代码时,若果本地没有代码则先下载(checkout)代码到本地,若本地有代码先更新代码(update)。

SVN会保存各个版本数据信息,它不是将各个版本都完整的保存下来,而是记录每个版本与上一个版本之间的差异,把这些差异储存起来,然后按照顺序更新或者恢复特定版本的数据。
所以,在svn仓库中看不到某个版本的代码文件,在仓库目录blog下的db目录中,有存放每个版本的具体信息的目录:revprops和 revs。

你可能感兴趣的:(SVN简介)