svn学习
1.svn特点
(1)全局版本号:只要有一次变动,整体版本号就会加1
(2)目录管理友好,可跟踪目录变动
(3)二进制增量传输:只提交变化的部分
(4)命令速度块
(5)原子提交:类似数据库中事务的概念
两个不同版本状态的一个文件是否一定不同?
全局版本号:改了别的文件,版本号递增,但这个文件没变;
2.版本管理方式
SVN代码库的存储结构:
推荐存储结构:
|-trunk
|-branches
|_tags
常见两种结构:
(1)
|-trunk
| |-project1
| |-project2
|-branches
| |-project1
| |-project2
|_tags
| |-project1
| |-project2
(2)
|-project1
|-trunk
|-branches
|_tags
|-project2
|-trunk
|-branches
|_tags
SVN版本模型:拷贝 修改 合并
工作副本:svn拿下来的本地文件的目录
主干(trunk):对应线上使用的代码
分支(branch):把整个目录拷贝到一个新的位置
标签(tags):标签是为一些文件的拷贝,提供了版本库在某个特定时刻的“快照”,是只读的。
3.分支开发流程
4.svn常用命令
svn原生命令:svn <subcommand>[options][args]
(1)检出checkout
svn co URL
创建一个分支的本质是什么?
(2) 确认信息
svn info 当前workcopy的分支版本等信息
svn log 查看提交日志
svn st 文件增删及目录的 变化信息
svn diff 文件修改细节检查
svn命令状态码
" " 无修改 “A” 增加 “C” 冲突 “D” 删除
“I”忽略 “M”改变 “R”替换
“X” 未纳入版本控制的目录,被外部引用的目录所创建
“?” 未纳入版本控制
“!”该项目已遗失(被非svn命令删除)或不完整
“~”版本控制下的项目与其他类型的项目重名
(3)修改
svn add
svn del
svn rename
(4)提交修改
svn ci -m "commit comment"