svn简介
subversion(SVN)是一个开源的版本控制系统,管理着随时间改变的数据,这些数据放置在一个中央资料档案库(reposlitory)中,这个档案库是一个普通的文件服务器,但它会记录每一次文件的改动
SVN的概念词汇
- repository(源代码库):源代码统一存放的地方
- checkout(提取):当你的手上没有源代码的时候,你需要从repository checkout一份
- commit(提交):当你已经修改了代码,你就需要commit到repository
- update(更新):当你已经checkout了一份源代码,update一下你就可以和repository上的源代码同步,你手上的代码就会有最新的变更
工作步骤:
checkout(几天之后)---->update(和repository上的源代码同步)----->做出自己的修改并调试成功后commit
小贴士
如果两个程序员同时修改了同一个文件,svn可以合并这两个程序员的改动,svn管理源代码是以行为为单位,两个程序员不是修改同一行程序,svn都会自动合并两种修改,svn会提示文件confilict,冲突,需要手动确认。
svn的主要功能
- 目录版本控制
- 真实的版本历史
- 自动提交
- 纳入版本控管的元数据
- 选择不同的网络层
- 一致的数据处理方式
- 有效的分支branch和标签tag
- Hackability
svn优势
- 原子提交
- 重命名,复制,删除文件等动作都保存在版本历史记录当中
- 对于二进制文件,使用节省空间的保存方法
- 目录也有版本历史,整个目录树可以被移动或复制,操作简单,而且能够保留全部的版本记录
- 分支开销非常小
- 优化过的数据库访问,使得一些操作不必访问数据库可以做到
常用的命令:
1.将文件checkout到本地目录
svn checkout path
svn co
2.往版本库中添加的文件
svn add filenames
svn add *.filename 模糊
3.将改动的文件提交到版本库
1.svn commit -m "Logmessage"[-N][--no-unlock]PATH 如果选择了保持锁,就使用--no-unlock开关
2.svn commit -m "add test file for my test" test.php
3.svn ci
4.查看日志
svn log path
6.比较差异
svn diff path (将修改的文件与基础版本进行对比)
svn diff -r m:n path (对比版本m和版本n比较差异)
svn di
7.版本库下的文件和目录列表
svn list path显⽰path⽬录下的所有属于版本库的⽂件和⽬录
svn ls