SVN简介

Subversion(SVN),是一个自由开源的版本控制系统,可以将数据恢复到早期版本,或者检查数据修改的历史,这些数据可以是源代码,也可以是其他类型的文件。
SVN,是一个跨平台的软件,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。
TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。

定义
版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会花时间作出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工作的团队 - 或许是同时工作在同一个文件!- 你就会明白为什么一个好的系统需要管理潜在的混乱。
某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括程序源码。
SubVersion:实现服务系统的软件。
TortoiseSVN:是SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端。
SVNService.exe:是专为SubVersion开发的一个用来作为Win32服务挂接的入口程序。
AnkhSVN:是一个专为VisualStudio提供SVN的插件。

历史
在2002年,Tim Kemp 发现 Subversion 是一个很好的版本控制系统,但是没有好的图形化客户端,创建一个作为 Windows 外壳集成的 Subversion 客户端的创意来自 TortoiseCVS,一个非常类似的 CVS 客户端。
Tim 学习了 TortoiseCVS 的源代码,将其作为 TortoiseSVN 的基础,然后开始这个项目,注册了域名 tortoisesvn,并将源代码提交到网上。此时 Stefan Küng 正在寻找一个好的免费版本控制系统,他发现了 Subversion 和 TortoiseSVN,由于 TortoiseSVN 还不能够使用,他加入了这个项目并开始编程。很快他便重写了大多数代码,并且开始添加命令和特性,此时,最初的代码都已经不复存在了。
随着 Subversion 越来越稳定,吸引了越来越多的用户开始使用 TortoiseSVN 作为他们的 Subversion 客户端。用户群增长迅速(每天都持续增长)。Lübbe Onken 提供了许多漂亮图标和 TortoiseSVN 的 logo,细心照料网站并且管理翻译。
2013年6月13日,Wandisco收购TortoiseSVN[dot]Net, TortoiseSVN leader - Stefan Küng加入Wandisco,有了Apache subversion领导开发者Wandisco的支持,TortoiseSVN将会有更多的改进。

特性
是什么让 TortoiseSVN 成为一个好的 Subversion 客户端?下面是一个简短的特性列表。
可选的网络层
Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion 的“高级”服务器是 Apache 网络服务器的一个模块,使用 HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏览等等。也有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自己的协议,可以轻松的用 SSH 封装。 
数据处理
Subversion 使用二进制文件差异算法展现文件的区别,对于文本(人类可读)和二进制(人类不可读)文件具备一致的操作方式,两种类型的文件都压缩存放在版本库中,差异在网络上双向传递。 
高效的分支和标签
分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只是复制项目,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少并且相对固定的时间,以及很小的版本库空间。
维护能力
Subversion 没有历史负担,它由一系列良好的共享 C 库实现,具有定义良好的 API,这使 Subversion 非常容易维护,可以轻易的被其他语言和程序使用。
外壳集成
TortoiseSVN 与Windows 外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工作,不需要在每次使用版本控制功能时切换应用程序。
并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展开发,因此在其他程序可能集成的并不完整,例如重载图标可能不会显示。
重载图标
每个版本控制的文件和目录的状态使用小的重载图标表示,可以让你立刻看出工作副本的状态。
简便访问
Subversion 命令的简便访问所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。
因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性:
目录版本控制
CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个“虚拟”文件系统,可以追踪整个目录树的修改,文件和目录都是版本控制的,结果就是可以在客户端对文件和目录执行移动和复制命令。   
原子提交
提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改。
版本控制的元数据
每个文件和目录都有一组附加的“属性”,你可以发明和保存任意的键/值对,属性是版本控制的,就像文件内容。

安装
语言包
TortoiseSVN的界面已经翻译成了许多种语言,所以你可以下载符合你要求的语言包。你可以在我们的翻译状态页里看到语言包。如果没有你需要的,为什么不加入我们的团队并且提交你的翻译呢?-)
每一种语言包都是一个.exe安装程序,只要根据向导运行安装程序,当你下一次启动程序时,翻译就会生效。 
拼写检查器
TortoiseSVN包括了一个拼写检查器,可以检查你的提交日志信息,当你的项目语言不是你的本地语言时尤其有用,拼写检查器使用OpenOffice和Mozilla相同的词典。
安装程序会自动增加了美国和英国英语dictionaries.If你想其他语言,最简单的方法是简单地安装一个TortoiseSVN的语言packs.This将安装合适的词典文件以及本地用户theTortoiseSVN interface.Next时间你开始,字典将可用。
或者你也可以自己安装词典。如果你安装了OpenOffice或Mozilla,你可以复制这些词典,位于那些应用的安装目录。否则,你需要从网络上下载必要的词典文件。
一旦你得到了词典文件,你可能需要重命名文件,这样文件名只包含位置信息,例如:
en_US.aff
en_US.dic
然后把它们复制到TortoiseSVN安装目录的bin子目录,通常情况下,可能是在C:\ProgramFiles\TortoiseSVN\bin。如果你不希望弄乱bin子目录,你可以将拼写检查文件放置在C:\ProgramFiles\TortoiseSVN\Languages,如果那个目录不存在,你可以自己创建,当你下次启动TortoiseSVN时,就可以使用拼写检查器。
如果你安装了多个词典,TortoiseSVN使用下面的规则选择一个。
检查tsvn:projectlanguage设置,关于设置项目属性可以参考“项目设置”一节。
如果没有设置项目语言,或者那个语言没有安装,尝试使用对应Windows区域信息的语言。
如果精确的Windows区域信息不起作用,可以试一下“基础”语言,例如将de_CH(Swiss-German)修改为de_DE(German)

工作流程
集中式管理的工作流程如下图:集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:
开始新一天的工作:
1、从服务器下载项目组最新代码。
2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,者看看前一个小时自己修改了哪些代码,就需要这样做了)。
3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。

版本发布
2012年01月16日,TortoiseSVN 1.7.4 发布。
2012年04月29日,TortoiseSVN 1.7.6 发布。
2012年06月08日,TortoiseSVN 1.7.7 发布,SVN客户端。
2012年08月16日,TortoiseSVN 1.7.8 发布。
2012年09月11日,TortoiseSVN 1.7.9发布。
TortoiseSVN 1.7.11发布

时间: 2024-09-30 19:16:31

SVN简介的相关文章

版本管理工具svn简介

svn简介 SVN是一种C/S架构的版本管理软件 , 能够帮助我们保存开发过程中各个文件的所有历史版本, 你因此可以方便的找回软件的任何一个历史状态., 日常开发中经常用到. 安装使用 1.  在 ubuntu下面安装非常简单 sudo apt-get install subversion 2. 检出文件, 这条命令会把svn服务器上面的目录下载到本地文件夹下面. 系统会提示输入用户名和密码. svn co http://{svn repository url} /destination 3.添

Subversion(svn) 简介

一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中. 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动. 这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史. SVN中的一些概念 : (1). repository(源代码库) 源代码统一存放的地方 (2). Checkout (提取) 当你手上没有源代码的时候,你需要从re

SVN简介与安装

SVN 简介: Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据.<br/> 这些数据放置在一个中央资料档案库(repository) 中. 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动. 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史. SVN 的一些基本操作: repository(源代码库):源代码统一存放的地方 Checkout(提取):当你手上没有源代码的时候,你需要从reposito

SVN简介+搭建svn服务器客户端+项目发布与检出+冲突解决

SVN简介 在实际的项目开发之中一定不可能只用一个人完成项目,一定是多人开发进行的,那么如果是多人开发,就一定会造成修改冲突.(比喻一个message类,几个人改就会你覆盖我,我覆盖你).最初的版本控制工具使用CVS.这些工具都是在linux下发展起来的,后来移到windows下.但在实际中还是要在linux下操作部署.但是慢慢的发现在CVS进行项目管理的过程中会产生大量的历史无用文件.所以现在的开发在CVS之后都开始使用SVN了.使用版本控制工具可以有效地针对你的项目中的代码进行管理,以及冲突

版本管理工具git与svn简介

版本管理工具 版本管理工具简介 常见版本管理工具 cvs(Concurrent Versions System) vss(Visual SourceSafe) svn 常用的版本管理工具 git 流行的版本管理工具(分支管理强于svn) bitkeeper hg cc(ClearCase) SVN 常用指令 checkout 下载代码 update 从服务器更新本地代码代码 add 向服务器添加文件 commit 提交本地的更改到服务器 showlog 查看版本日志 GIT git init 新

SVN简介及简单操作

什么是SVN(Subversion)?   有一个简单但不十分精确比喻: SVN = 版本控制 + 备份服务器 简单的说,您可以把SVN当成您的备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容.并且自动的赋予每次的变更一个版本. 通常,我们称用来存放上传档案的地方就做Repository.用中文来说,有点像是档案仓库的意思.不过,通常我们还是使用Repository这个名词.基本上,第一次我们需要有一个新增(add)档案的动作,将想要备份的档案放到Repository上面.日后

svn -- svn简介

一.为什么需要SVN 你们在做中级项目中,都是采用小组合作开发的?那么说说你们在后期整合中遇到问题? 主要应用于: 1.协作开发 2.远程协作 3.版本回退 二.什么是SVN l svn全称SubVersion l svn是近年来崛起的版本管理工具,是cvs的接班人.目前,绝大多数开源软件都使用svn作为代码版本管理软件.(oschina.Github) l 支持Windows.Linux.MacOS l 前身是CVS l 时间机器 解决第一个问题中的解决方案 SCM (软件配置管理) 对软件源

svn 简介

Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,SVN 相对于 RCS.CVS,采用了分支管理系统,它的设计目标就是取代CVS,互联网上免费的版本控制服务多基于Subversion.Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库

1. svn 简介

参考文档: http://svndoc.iusesvn.com/ SVN的 相关网站 什么是svn?Subversion是一个“集中式”的信息共享系统.版本库是Subversion的核心部分,是数据的中央仓库.版本库以典型的文件和目录结构形式文件系统树来保存信息.任意数量的客户端连接到Subversion版本库,读取.修改这些文件.客户端通过写数据将信息分享给其他人,通过读取数据获取别人共享的信息. svn出现主要是为了接管cvs.并且修复了许多cvs的以前的问题  : 可以参考: https: