1.31 SVN代码版本控制
参考资料:https://www.runoob.com/svn/tortoisesvn-intro.html
-
SVN 教程
-
SVN是什么?
-
Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部分。
-
SVN相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。
-
Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
-
Git也是版本控制系统。但SVN是集中式,Git是分布式。
-
SVN的优点(相对于CVS的优点)
-
1、原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
-
2、重命名、复制、删除文件等动作都保存在版本历史记录当中。
-
3、对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)
-
4、目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
-
5、分支的开销非常小。
-
6、优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量。
-
用三个词来总结就是——安全,效率,资源共享。
-
SVN的应用场景
-
程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。
-
SVN的原理和核心
-
SVN 的一些概念
-
repository(源代码库):源代码统一存放的地方
-
Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
-
Commit(提交):当你已经修改了代码,你就需要Commit到repository
-
Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更
-
日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。
-
如果两个程序员同时修改了同一个文件呢, SVN 可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN 会提示文件 Conflict, 冲突,需要手动确认。
-
SVN的主要功能
-
目录版本控制: 目录和文件都能进行版本控制。
-
真实的版本历史:
-
自动提交
-
纳入版本控管的元数据
-
选择不同的网络层
-
一致的数据处理方式‘
-
有效的分支(branch)与标签(tag)
-
Hackability
-
SVN的生命周期
-
创建版本库
-
检出
-
更新
-
执行变更
-
复原变化
-
修复错误
-
解决冲突
-
提交更改
努力不一定成功,但不努力一定会失败~