svn使用
URL访问
本地或网络驱动器直接访问版本库
- file:///path/
- windows file:///C:/path
http://访问
- 通过webDAV协议访问集成Subversion 的Apache服务器
https://访问
-
与http相同,但是使用SSL加密
-
SSL
-
安全套接层,为网络通信提供安全及数据完整性的一种安全协议,在传输层和应用层之间
-
特性
- 机密性
- 可靠性
- 完整性
-
-
svn://
- 使用未认证的tcp/ip通过自定义协议访问svn服务器
svn+ssh://
- 使用认证的。。。。
版本库布局
Repositories
-
project1
-
trunk开发主线
-
tags发布快照,只读,不要在tags上修改
- 标记产品发布的状态
- 标记当前开发的快照
-
branches准备发布,bug修正
- 在分支中修订bug,修正之后可以合并到主线,发布
-
-
svn提交规范
-
项目名:FS-xxx项目
-
trunk
-
code
-
doc
- v1版本文档
- v2
-
-
tags
- FS-xxx项目{版本号}{svn的revision号}_{Jenkins的构建号}_发布日期: 目录规则建议按照此方式建立
-
branches
- branches分支一般从tags中激活
-
-
svn操作
import
- 将本地保存的项目树导入(import)到版本库服务器
check out
-
将项目从版本库服务器传送到客户端,相当于git pull ,git clone
-
右键菜单TortoiseSVN->check for modifications
要经常查看更新,每次写之前最好看看 -
检出深度
-
全递归
- 检出目录和所有文件夹子目录
-
直接子节点,包含文件夹
- 检出文件和子目录,不递归展开子目录
-
仅文件子节点
- 检出指定目录所有文件,不检出子目录
-
仅此项
- 检出目录,不包含文件和子目录
-
commit
- 要填写提交的内容的相关信息
TortoiseSVN->Revert
- 撤销修改(增删复制删除),只能在commit之前,commit之后只能通过版本回滚
TortoiseSVN->add
- 增加目录文件
TortoiseSVN->delete
- 删除文件或目录
TortoiseSVN->show log
- 查看历史版本
- 查看之后点击历史版本,可以查看,也可以回滚(Revert to this revision)
建立分支
-
选中trunk文件夹
-
右键,选择TortoiseSVN
-
选择Branch/tag
-
对话框中输入to path 框中/branch/test001
-
复本
- HEAD修订版,最新版本创建分支
- 指定资源库中的修订版,以以前的版本创建分支
-
点击ok,刷新文件结构,创建成功
合并分支
- 选中trunk文件夹
- 右键,选择TortoiseSVN
- 选择合并(merge) --> Reinregrate a branch
- 合并前先提交
- merge from 选择分支文件夹
- 选择合并的方式,finish
文件图标状态
绿勾
- 正常
红感叹
- 对文件修改,还没有提交
黄感叹
- 提交过程冲突
黄锁
- 表示文件正常,文件被上了一个锁。如果不使用,要及时释放该文件锁
svn版本控制模型
非代码文件(不能比对):锁定–修改–解锁
-
冲突问题
-
乐观锁
-
必须按照get lock-- 修改—releace lock
-
如果已经有人锁定,就有错误提示
-
特点
-
优点;简单
-
缺点:
- 忘记解锁
- 所有人都必须按照这个默认流程
- 对用户没有锁定的提醒
-
-
-
悲观锁
-
文件属性->subversion->properties->add->need-lock
-
特点
-
优点:文件会给你只读状态的提醒
-
缺点
- 只读状态可能会被程序改变
-
-
代码(可以比对):拷贝–修改–合并
-
冲突问题
-
多位成员操作同一个代码文件,导致本地文件与版本库不一致
-
解决:使用工具人工合并,或者放弃修改
- 先update,得到三个文件
- filename.mine 你的最新修改
- fliename.rOLDREV 在你修改之前检出的文件
- filename.rNEWREV 对应最新的版本库
- 右键filename.mine 选择合并修改
-
工具合并后,选择已解决的commit
-
-
关于冲突的建议:
- 修改文件之前先update
- 修改之后,及时commit,不再本地停留过多时间
- 在多位成员协作时,只修改自己撰写的部分,尽量不修改不属于自己的部分
XMind - Trial Version