SVN简介
-
全称Apache Subversion ,是版本控制系统。
-
SVN相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。
RCS (Revision Control System) 修订控制系统,使用Lock机制防止多个开发人员对同一个文件同时进行修改。
CVS(Cocurrent Version System)并发版本系统,使用单一的主代码树,而不像RCS那样依赖多个目录,最大优点在于多名开发人员可以同时对一个文件进行修改.允许合并。
SVN(SubVersion)版本控制,CVS 只能对文件进行版本控制,不能对目录进行版本控制。CVS 只能注意到,一个文件在一个位置被删除了,而在一个新位置创建了另外一个文件。由于它不会连接两个操作,因此也很容易使文件历史轨迹丢失。SVN可以连接两个操作。CVS 采用串行批量提交模式,有个弊端:当任何原因造成批量操作的中断时(典型原因包括:网络中断、客户端死机等),版本库往往处于一个不一致的状态:原本应该全部入库的文件只有一部分入库,很有可能版本库中的最新版本不能顺利编译,更为严重的是,随着其他的用户执行cvs update 操作,该不一致性将迅速在开发团队中扩散,从而严重影响团队的开发效率,并存在质量隐患。另外,假如该批量提交的中断没有被及时发现,开发团队往往要花更多的时间进行软件调试和排错。
Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。
Git更加适合分布式开发项目,而SVN则更适合于集中式大型开发项目。
也有在Git之上再使用一层SVN的做法。
参考链接: https://blog.csdn.net/hh2000/article/details/3741212. -
管理着随时间改变的数据, 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
SVN概念
1.Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。
2.repository(源代码库):源代码统一存放的地方
3.Checkout(提取):从repository checkout一份你没有的代码。
如果两个程序员同时修改了同一个文件呢, SVN 可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN 会提示文件 Conflict, 冲突,需要手动确认。
SVN功能
- 目录版本控制
- 真实的版本历史
- 自动提交
- 纳入版本控管的元数据
- 选择不同的网络层
- 一致的数据处理方式
- 有效的分支(branch)与标签(tag)
- Hackability(可编程性)
在windows下安装SVN
在CentOS下安装SVN
在Ubuntu下安装SVN
TortoiseSVN
- TortoiseSVN 安装和语言包补丁的下载。(考虑镜像下载)
- TortoiseSVN 的使用。
菜鸟教程: https://www.runoob.com/svn/tortoisesvn-intro.html.
TortoiseSVN使用: https://www.jianshu.com/p/6b3b7b915332.