SVN使用指南——Windows环境版
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 安装文件:
– TSVN客户端:
• TortoiseSVN-1.6.8.19260-win32-svn-1.6.11.msi
– TSVN中文语言包:
• LanguagePack_1.6.8.19260-win32-zh_CN.msi
• 全部选择默认安装,安装完成后重启电脑 • TSVN通过右键菜单与Windows资源管理器 集成,没有自己的窗口界面
Back
改名(三)
• 改名的另一种方法:
– 在受SVN控制的某层 文件夹或文件上点右键, 选择“TortoiseSVN- 版本库浏览器” – 在弹出窗口右键点击要 改名的文件夹或文件, 选择“改名” – 由于是对服务器版本库 直接操作,改名后将自 动执行一次“提交”操 作 – 改名完成后需要在客户 端执行一次“更新”, 以下载最新状态
SVN使用指南 ——Windows环境版
内 容 概 要
• • • • • • 问题与案例 SVN简介 应用环境 客户端安装 简单应用 复杂应用
问题与案例(一)
• 电脑发生故障,文件没有备份而丢失了 • 由于人员离职,导致某些资料丢失了 • 我怎么知道手头的公共资料是不是最新版 呢? • 想要追溯几个月前的某个状态,却发现那 个版本的文件已经被当作垃圾删除了 • 每天要花费很多时间来向别人提供需要共 享的资料
Back
应用环境
• 服务器端:CollabNet的SVN服务器端安装 包(内含Apache2.2) • Windows客户端:推荐使用TortoiseSVN (以下简称TSVN) • 可通过TSVN进行读、写操作 • 可通过IE浏览器进行读操作 • 可通过各种插件与开发工具集成
Back
客户端安装(一)
• 标记
– “标记”通常用于版本发布、标识基线状态等 情况 – “标记”通常设置为配置管理员拥有读写缺陷, 其他人员只有读取权限
• SVN使用同样的操作进行“分支”和“标 记” Back
分支/标记(二)推荐的目录结构
project trunk 代码
文档 branches tags
Back
分支/标记(三)案例一
Back
SVN简介(一)
SVN
Back
SVN简介(二)
• 一个开源的版本管理软件 • 可架设在Apache上,使用http或https协议 访问;也可使用内置的svn协议访问 • 在Windows环境下,最常用的客户端为 TortoiseSVN(简称TSVN) • 在Linux/Unix环境下,用命令行方式操作 • SVN的版本号指的不是某个文件的状态, 而是整个库的状态
XXX软件
710
Release_V1_0
709 711 712 713
715
工行版
714
建行版
717
农行版
716
723 718 724 720 730 726 727 729 722 728 719 721
725
Release_V1_1
tags 标记
trunk 主干
branches 分支 Back
分支/标记(四)案例二
– 在受SVN控制的某层文件夹或文件 上点右键,选择“TortoiseSVN- SVN还原…”
Back
还原(二)
– 在弹出窗口中查看要 还原的内容,点击 “确定”还原客户端 数据
• “还原”只能用于执 行“提交”操作之前, 即未将客户端的改变 上传到服务器之前
Back
复原(回滚)(一)
• 复原(回滚)用于将项目恢复到 之前的某个版本状态,并在此版 本基础上继续后面的工作
Back
增加(二)
– 如果“增加”是对文件夹进行操作,则会弹出 窗口列出该文件夹下未受控的文件,点击“确 定”将其纳入SVN控制
– “增加”后文件图标从
变成
• “增加”仅是对客户端的文件进行标注, 并不上传到服务器,需要执行“提交”操 作才会上传
Back
删除(一)
• “删除”用于从当前版本中删除文件或文件 夹
– 在受SVN控制的某层文件夹或文件 上点右键,选择“TortoiseSVN-显 示日志”
Back
复原(回滚)(二)
– 在弹出的日 志窗口中, 右键点击要 复原的版本, 选择“复原 到此版本” – 复原结束后, 执行“提交” 操作,将此 版本作为版 本库的最新 版本
Back
冲突及解决(一)
• 冲突的产生:
– 在受SVN控制的文件夹中,通过Windows直接 删除子文件夹或文件 – 或:在受SVN控制的某层文件夹或文件上点右 键,选择“TortoiseSVN-删除”
Back
删除(二)
• “删除”仅是对客户端的文件进行操作,并 不改变服务器上的内容,需要执行“提交” 操作才会将删除操作上传到服务器 • 将“删除”操作“提交”到服务器后,仅 是从服务器的最新版本中删除了此文件或 文件夹,在历史版本中仍可找回此文件或 文件夹
– 当两人从同一个版本出发,修改同一份文件并 提交时,这两个修改版本就会发生冲突,后提 交的人会收到发生冲突的提醒,且提交失败, 要求先进行更新操作
Back
冲突及解决(一)
113 113
114
114
115
115
不会导致冲突
可能导致冲突
Back
冲突及解决(三)
• 发生冲突后,执行“更新”操作后:
– 对于发生冲突的文件,TSVN会加上冲突标记 – 如果发生冲突的文件是二进制文件(如doc文 件、jpg文件),TSVN会增加2个文件,分别 是起始版本和发生冲突的版本 – 如果发生冲突的文件是文本文件(如c文件、 txt文件),TSVN会将工作副本中的原文件改 名增加“.mine”后缀,将两个版本的冲突写入 原名文件(文件中用<<<<<<<、=======、 >>>>>>>加以标识),并另外增加2个文件, 分别是起始版本和发生冲突的版本
Back
更新至版本
• “更新至版本”用于取出文件的某 历史版本
– 在受SVN控制的某层文件夹或文件 上点右键,选择“TortoiseSVN- 更新至版本…” – 在弹出窗口中填写要取的版本号, 点“确定”取回该版本
Back
还原(一)
• “还原”用于放弃“增加”、“删 除”、“改名”以及修改文件内 容等客户端的本地操作,将客户 端的数据恢复到改动前的版本状 态
Back
冲突及解决(四)
• 例如:两人从第213版开始对start.c和SRS.doc进 行修改,甲先修改完成并提交形成217版,乙随 后提交时发生冲突,则在乙的该文件夹下将会存 在七个文件:
– – – – – – – start.c:自动合并了甲和乙的修改内容的start.c start.c.r213:甲乙修改前的start.c start.c.r217:甲修改后的strat.c start.c.mine:乙修改后的start.c SRS.doc:乙修改后的SRS.doc SRS.doc.r213 :甲乙修改前的SRS.doc SRS.doc.r217:甲修改后的SRS.doc
Back
移动(一)
• “移动”用于在受SVN 控制的状态下,移动 文件或文件夹的位置
– 在受SVN控制的某层文 件夹或文件上点右键, 选择“TortoiseSVN- 版本库浏览器” – 在弹出窗口拖动文件夹 或文件到需要的位置 – 由于是对服务器版本库 直接操作,移动后将自 动执行一次“提交”操 作 – 移动完成后需要在客户 端执行一次“更新”, 以下载最新状态
Back
改名(一)
• “改名”用于在受SVN控制的状态下,对文 件或文件夹改名
– 在受SVN控制的某层文件夹或文件上点右键, 选择“TortoiseSVN-改名”
Back
改名(二)
• “改名”仅是对客户端的文件进行操作,并 不改变服务器上的内容,需要执行“提交” 操作才会将改名操作上传到服务器 • 不要用Windows“重命名”来实现改名,因 为这个操作不受SVN控制,SVN会将其理 解为删除原文件、增加一个新文件,从而 导致文件改名后不能跟踪到改名前的状态
Back
问题与案例(二)
• 相似的应用系统,每次都重复开发,难以 复用 • 一个软件被用于多个项目,发现其中存在 一个BUG,所有这些项目都要进行修复 • 人员分布在两地开发,版本如何同步 • 甲乙两人为不同目的修改了同一份文件, 乙的提交在甲提交之后,导致甲修改的内 容丢失了 • 客户测试发现了BUG,开发人员却无法重 现出来
BUG037
717
715
716
718
719
720
722
721
trunk 主干
branches 分支 Back
分支/标记(六)创建分支
– 在受SVN控制的某层文件夹上点右 键,选择“TortoiseSVN-分支/标 记…” – 在弹出窗口的“至URL”栏,填写分 支的存放地址,通常将其存放到 branches目录下,并加上分支的名 称,如: http://10.50.22.35:8080/svn/软件中 心/project/branches/工行版
Back
移动(二)
• 不要用Windows的拖动操作或“剪切”、 “粘贴”来实现移动,因为这些操作不受 SVN控制,SVN会将其理解为在原位置删 除文件、在新位置增加文件,从而导致文 件移动后不能跟踪到移动前的状态
Back
复杂应用
• • • • • • • • 更新至版本 还原 复原(回滚) 冲突及解决 分支/标记 合并 锁定/解锁 权限管理
XXX软件
712
Release_V1_0
711 713 714
V1_0维护
715
716
718
717
720
719
…
…
1012
Release_V2_0 tags 标记
1011 1013
trunk 主干
branches 分支
V2_0维护
Back
分支/标记(五)案例三
发现BUG, 编号037
XXX软件
712 713 714
第一次从服务 器下载数据 (含历史信息)
在服务器上创 建新的版本库 (限服务器上 操作) 导入新版本库 的目录结构 (不推荐使用)
Back
TSVN右键菜单(二)
从服务器上 下载最新版本 将本地的修改 上传到服务器
查看修订历史 信息
标记冲突已经 被解决 SVN控制下的 改名和删除 放弃本次进行 的修改 取回之前的 某个版本 创建分支 或标记 合并分支
Back
更新
• “更新”用于客户端从SVN服务器下载最新 版本
– 在受SVN控制的某层文件夹上(或文件夹内空 白处)点右键,选择“SVN更新”,TSVN自 动比较该文件夹客户端与服务器的版本差异, 并下载最新版本到客户端
Back
提交(一)
• “提交”用于将客户端的改动上传到SVN服 务器
– 在受SVN控制的某层文件夹上(或文件夹内空 白处,或某文件上)点右键,选择“SVN提 交…”
Back
冲突及解决(五)
• 解决冲突:
– 手工将前一版本中的修改整合到自 己的文件中 – 在冲突的文件或文件夹上点右键, 选择 “Tortoise-已解决的…”,标 记为冲突已解决(此时会自动删除 多余的文件),然后再次“提交”
Back
分支/标记(一)
• 分支:
– “分支”通常用于在不同的线上同时工作的情 况 – “分支”通常设置为分支的所有者拥有读写权 限,其他人员仅有读取权限
Back
客户端安装(二)
• TSVN通过右键菜单与Windows资源管理器 集成,没有自己的窗口界面
Back
简单应用
• • Baidu Nhomakorabea • • • • • • TSVN右键菜单与图标 创建版本库 检出 更新 提交 增加 删除 改名 移动
Back
TSVN右键菜单(一)
查看服务器上 版本库内容
从服务器下载 数据(不含历 史信息)
– 在客户端新建一个文件夹用于存放下载的数据 – 在新建文件夹上点右键,选择“SVN检出…”
Back
检出(二)
– 在弹出窗口的“版本库URL”处填入版本库的访 问地址,如:http://10.50.22.35:8080/svn/XXX 部门/XXXX项目/ – 点“确定”开始从SVN服务器下载数据
Back
提交(二)
– TSVN自动检查该文 件夹客户端的改动, 并将其列在弹出窗口 的“变更列表”栏 – 在弹出窗口的“信息” 栏写上对此次提交的 注释,以便将来追溯 – 点击“确定”将客户 端的改动上传到服务 器
Back
增加(一)
• “增加”用于将新文件或文件夹纳入SVN的 控制之下
– 在受SVN控制的某层文件夹上(或文件夹内空 白处,或新增的某文件上)点右键,选择 “TortoiseSVN-增加”
将新文件纳入 SVN的控制
Back
TSVN图标
Back
创建版本库
• 在SVN服务器端操作
– 在相应文件夹内新建一个文件夹,用于存储数 据 – 在新建文件夹上点右键,选择“TortoiseSVN -在此创建版本库”,TSVN会在此文件夹内 建立若干控制文件
Back
检出(一)
• “检出”用于客户端第一次从SVN服务器上 下载版本库数据
– TSVN客户端:
• TortoiseSVN-1.6.8.19260-win32-svn-1.6.11.msi
– TSVN中文语言包:
• LanguagePack_1.6.8.19260-win32-zh_CN.msi
• 全部选择默认安装,安装完成后重启电脑 • TSVN通过右键菜单与Windows资源管理器 集成,没有自己的窗口界面
Back
改名(三)
• 改名的另一种方法:
– 在受SVN控制的某层 文件夹或文件上点右键, 选择“TortoiseSVN- 版本库浏览器” – 在弹出窗口右键点击要 改名的文件夹或文件, 选择“改名” – 由于是对服务器版本库 直接操作,改名后将自 动执行一次“提交”操 作 – 改名完成后需要在客户 端执行一次“更新”, 以下载最新状态
SVN使用指南 ——Windows环境版
内 容 概 要
• • • • • • 问题与案例 SVN简介 应用环境 客户端安装 简单应用 复杂应用
问题与案例(一)
• 电脑发生故障,文件没有备份而丢失了 • 由于人员离职,导致某些资料丢失了 • 我怎么知道手头的公共资料是不是最新版 呢? • 想要追溯几个月前的某个状态,却发现那 个版本的文件已经被当作垃圾删除了 • 每天要花费很多时间来向别人提供需要共 享的资料
Back
应用环境
• 服务器端:CollabNet的SVN服务器端安装 包(内含Apache2.2) • Windows客户端:推荐使用TortoiseSVN (以下简称TSVN) • 可通过TSVN进行读、写操作 • 可通过IE浏览器进行读操作 • 可通过各种插件与开发工具集成
Back
客户端安装(一)
• 标记
– “标记”通常用于版本发布、标识基线状态等 情况 – “标记”通常设置为配置管理员拥有读写缺陷, 其他人员只有读取权限
• SVN使用同样的操作进行“分支”和“标 记” Back
分支/标记(二)推荐的目录结构
project trunk 代码
文档 branches tags
Back
分支/标记(三)案例一
Back
SVN简介(一)
SVN
Back
SVN简介(二)
• 一个开源的版本管理软件 • 可架设在Apache上,使用http或https协议 访问;也可使用内置的svn协议访问 • 在Windows环境下,最常用的客户端为 TortoiseSVN(简称TSVN) • 在Linux/Unix环境下,用命令行方式操作 • SVN的版本号指的不是某个文件的状态, 而是整个库的状态
XXX软件
710
Release_V1_0
709 711 712 713
715
工行版
714
建行版
717
农行版
716
723 718 724 720 730 726 727 729 722 728 719 721
725
Release_V1_1
tags 标记
trunk 主干
branches 分支 Back
分支/标记(四)案例二
– 在受SVN控制的某层文件夹或文件 上点右键,选择“TortoiseSVN- SVN还原…”
Back
还原(二)
– 在弹出窗口中查看要 还原的内容,点击 “确定”还原客户端 数据
• “还原”只能用于执 行“提交”操作之前, 即未将客户端的改变 上传到服务器之前
Back
复原(回滚)(一)
• 复原(回滚)用于将项目恢复到 之前的某个版本状态,并在此版 本基础上继续后面的工作
Back
增加(二)
– 如果“增加”是对文件夹进行操作,则会弹出 窗口列出该文件夹下未受控的文件,点击“确 定”将其纳入SVN控制
– “增加”后文件图标从
变成
• “增加”仅是对客户端的文件进行标注, 并不上传到服务器,需要执行“提交”操 作才会上传
Back
删除(一)
• “删除”用于从当前版本中删除文件或文件 夹
– 在受SVN控制的某层文件夹或文件 上点右键,选择“TortoiseSVN-显 示日志”
Back
复原(回滚)(二)
– 在弹出的日 志窗口中, 右键点击要 复原的版本, 选择“复原 到此版本” – 复原结束后, 执行“提交” 操作,将此 版本作为版 本库的最新 版本
Back
冲突及解决(一)
• 冲突的产生:
– 在受SVN控制的文件夹中,通过Windows直接 删除子文件夹或文件 – 或:在受SVN控制的某层文件夹或文件上点右 键,选择“TortoiseSVN-删除”
Back
删除(二)
• “删除”仅是对客户端的文件进行操作,并 不改变服务器上的内容,需要执行“提交” 操作才会将删除操作上传到服务器 • 将“删除”操作“提交”到服务器后,仅 是从服务器的最新版本中删除了此文件或 文件夹,在历史版本中仍可找回此文件或 文件夹
– 当两人从同一个版本出发,修改同一份文件并 提交时,这两个修改版本就会发生冲突,后提 交的人会收到发生冲突的提醒,且提交失败, 要求先进行更新操作
Back
冲突及解决(一)
113 113
114
114
115
115
不会导致冲突
可能导致冲突
Back
冲突及解决(三)
• 发生冲突后,执行“更新”操作后:
– 对于发生冲突的文件,TSVN会加上冲突标记 – 如果发生冲突的文件是二进制文件(如doc文 件、jpg文件),TSVN会增加2个文件,分别 是起始版本和发生冲突的版本 – 如果发生冲突的文件是文本文件(如c文件、 txt文件),TSVN会将工作副本中的原文件改 名增加“.mine”后缀,将两个版本的冲突写入 原名文件(文件中用<<<<<<<、=======、 >>>>>>>加以标识),并另外增加2个文件, 分别是起始版本和发生冲突的版本
Back
更新至版本
• “更新至版本”用于取出文件的某 历史版本
– 在受SVN控制的某层文件夹或文件 上点右键,选择“TortoiseSVN- 更新至版本…” – 在弹出窗口中填写要取的版本号, 点“确定”取回该版本
Back
还原(一)
• “还原”用于放弃“增加”、“删 除”、“改名”以及修改文件内 容等客户端的本地操作,将客户 端的数据恢复到改动前的版本状 态
Back
冲突及解决(四)
• 例如:两人从第213版开始对start.c和SRS.doc进 行修改,甲先修改完成并提交形成217版,乙随 后提交时发生冲突,则在乙的该文件夹下将会存 在七个文件:
– – – – – – – start.c:自动合并了甲和乙的修改内容的start.c start.c.r213:甲乙修改前的start.c start.c.r217:甲修改后的strat.c start.c.mine:乙修改后的start.c SRS.doc:乙修改后的SRS.doc SRS.doc.r213 :甲乙修改前的SRS.doc SRS.doc.r217:甲修改后的SRS.doc
Back
移动(一)
• “移动”用于在受SVN 控制的状态下,移动 文件或文件夹的位置
– 在受SVN控制的某层文 件夹或文件上点右键, 选择“TortoiseSVN- 版本库浏览器” – 在弹出窗口拖动文件夹 或文件到需要的位置 – 由于是对服务器版本库 直接操作,移动后将自 动执行一次“提交”操 作 – 移动完成后需要在客户 端执行一次“更新”, 以下载最新状态
Back
改名(一)
• “改名”用于在受SVN控制的状态下,对文 件或文件夹改名
– 在受SVN控制的某层文件夹或文件上点右键, 选择“TortoiseSVN-改名”
Back
改名(二)
• “改名”仅是对客户端的文件进行操作,并 不改变服务器上的内容,需要执行“提交” 操作才会将改名操作上传到服务器 • 不要用Windows“重命名”来实现改名,因 为这个操作不受SVN控制,SVN会将其理 解为删除原文件、增加一个新文件,从而 导致文件改名后不能跟踪到改名前的状态
Back
问题与案例(二)
• 相似的应用系统,每次都重复开发,难以 复用 • 一个软件被用于多个项目,发现其中存在 一个BUG,所有这些项目都要进行修复 • 人员分布在两地开发,版本如何同步 • 甲乙两人为不同目的修改了同一份文件, 乙的提交在甲提交之后,导致甲修改的内 容丢失了 • 客户测试发现了BUG,开发人员却无法重 现出来
BUG037
717
715
716
718
719
720
722
721
trunk 主干
branches 分支 Back
分支/标记(六)创建分支
– 在受SVN控制的某层文件夹上点右 键,选择“TortoiseSVN-分支/标 记…” – 在弹出窗口的“至URL”栏,填写分 支的存放地址,通常将其存放到 branches目录下,并加上分支的名 称,如: http://10.50.22.35:8080/svn/软件中 心/project/branches/工行版
Back
移动(二)
• 不要用Windows的拖动操作或“剪切”、 “粘贴”来实现移动,因为这些操作不受 SVN控制,SVN会将其理解为在原位置删 除文件、在新位置增加文件,从而导致文 件移动后不能跟踪到移动前的状态
Back
复杂应用
• • • • • • • • 更新至版本 还原 复原(回滚) 冲突及解决 分支/标记 合并 锁定/解锁 权限管理
XXX软件
712
Release_V1_0
711 713 714
V1_0维护
715
716
718
717
720
719
…
…
1012
Release_V2_0 tags 标记
1011 1013
trunk 主干
branches 分支
V2_0维护
Back
分支/标记(五)案例三
发现BUG, 编号037
XXX软件
712 713 714
第一次从服务 器下载数据 (含历史信息)
在服务器上创 建新的版本库 (限服务器上 操作) 导入新版本库 的目录结构 (不推荐使用)
Back
TSVN右键菜单(二)
从服务器上 下载最新版本 将本地的修改 上传到服务器
查看修订历史 信息
标记冲突已经 被解决 SVN控制下的 改名和删除 放弃本次进行 的修改 取回之前的 某个版本 创建分支 或标记 合并分支
Back
更新
• “更新”用于客户端从SVN服务器下载最新 版本
– 在受SVN控制的某层文件夹上(或文件夹内空 白处)点右键,选择“SVN更新”,TSVN自 动比较该文件夹客户端与服务器的版本差异, 并下载最新版本到客户端
Back
提交(一)
• “提交”用于将客户端的改动上传到SVN服 务器
– 在受SVN控制的某层文件夹上(或文件夹内空 白处,或某文件上)点右键,选择“SVN提 交…”
Back
冲突及解决(五)
• 解决冲突:
– 手工将前一版本中的修改整合到自 己的文件中 – 在冲突的文件或文件夹上点右键, 选择 “Tortoise-已解决的…”,标 记为冲突已解决(此时会自动删除 多余的文件),然后再次“提交”
Back
分支/标记(一)
• 分支:
– “分支”通常用于在不同的线上同时工作的情 况 – “分支”通常设置为分支的所有者拥有读写权 限,其他人员仅有读取权限
Back
客户端安装(二)
• TSVN通过右键菜单与Windows资源管理器 集成,没有自己的窗口界面
Back
简单应用
• • Baidu Nhomakorabea • • • • • • TSVN右键菜单与图标 创建版本库 检出 更新 提交 增加 删除 改名 移动
Back
TSVN右键菜单(一)
查看服务器上 版本库内容
从服务器下载 数据(不含历 史信息)
– 在客户端新建一个文件夹用于存放下载的数据 – 在新建文件夹上点右键,选择“SVN检出…”
Back
检出(二)
– 在弹出窗口的“版本库URL”处填入版本库的访 问地址,如:http://10.50.22.35:8080/svn/XXX 部门/XXXX项目/ – 点“确定”开始从SVN服务器下载数据
Back
提交(二)
– TSVN自动检查该文 件夹客户端的改动, 并将其列在弹出窗口 的“变更列表”栏 – 在弹出窗口的“信息” 栏写上对此次提交的 注释,以便将来追溯 – 点击“确定”将客户 端的改动上传到服务 器
Back
增加(一)
• “增加”用于将新文件或文件夹纳入SVN的 控制之下
– 在受SVN控制的某层文件夹上(或文件夹内空 白处,或新增的某文件上)点右键,选择 “TortoiseSVN-增加”
将新文件纳入 SVN的控制
Back
TSVN图标
Back
创建版本库
• 在SVN服务器端操作
– 在相应文件夹内新建一个文件夹,用于存储数 据 – 在新建文件夹上点右键,选择“TortoiseSVN -在此创建版本库”,TSVN会在此文件夹内 建立若干控制文件
Back
检出(一)
• “检出”用于客户端第一次从SVN服务器上 下载版本库数据