• 1. (本页无文本内容)
  • 2. SubVersion客户端使用说明 中心研究院技术部 产品数据科      2008-5-8
  • 3. 目录 SubVersion介绍打开 客户端TortoiseSVN安装打开 客户端TortoiseSVN操作指南打开  1、资源管理器上的操作 a、检出打开 j、取消修改打开 b、修改提交打开 k、分支/标记打开 c、更新打开 l、切换打开 d、冲突处理打开 m、合并打开 e、加锁解锁打开 n、显示日志打开 f、批量导入打开 o、检查更新打开 g、新增文件打开 p、版本分支图打开 h、删除打开 q、更改验证打开   i、重命名打开 r、重新定位打开 2、SVN版本库浏览器上的操作 打开
  • 4. SubVersion简介 Subversion是一款开源软件,业界认为是CVS版本的替代产品,它比CVS功能强大和稳定。 TortoiseSVN是Subversion的Windows客户端。是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
  • 5. SubVersion架构
  • 6. SVN的工作模式:返回
  • 7. SubVersion介绍 客户端TortoiseSVN安装 客户端TortoiseSVN操作指南  1、资源管理器上的操作  2、SVN版本库浏览器上的操作
  • 8. 客户端的安装:1、点击 \\10.44.19.8\SVN_Install\TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi  用户名:SVN_user 密码:SVN_user 按提示安装。完成后重启机器:
  • 9. 2、点击 \\10.44.19.8\SVN_Install\LanguagePack-1.4.8.12137-win32-zh_CN.exe  安装此程序后,可支持中文操作界面 3、安装完成后, 在桌面点击右键, 即可看到增加了 TortoiseSVN 工具条
  • 10. 4、打开settings,选择中文语言
  • 11. 5、确定后,即显示中文界面 返回
  • 12. SubVersion介绍 客户端TortoiseSVN安装 客户端TortoiseSVN操作指南  1、资源管理器上的操作  2、SVN版本库浏览器上的操作
  • 13. 一、检出需要的项目:  1、在本地建一个文件夹,用来存放检出的项目   在此文件夹上按右键,选择“SVN 检出…”。如图:
  • 14.  2、在弹出的窗口中输入“版本库的URL地址”和“检出后文件的存放路径”,如图所示: (登录过的地址,即保存在系统中了,下次登录直接在下拉框中选择)  一般选择“最新版本”,也可以选择某个节点的版本
  • 15.  如本地目录不存在,则报: 提醒: 1、版本库URL由配置管理员发布 2、“检出至目录”的路径的最后一层目录要与版本库URL的最后一层目录一致,否则只会检出该目录下的内容放在本地 3、如果检出到本地的目录与版本库的目录结构一致,则可以直接拷贝路径 4、如果取一个项目下的多个目录(不是全部),则需要分别检出,每次只能检出一个目录 选则“是”,自动创建目录
  • 16.  3、确定后系统提示输入用户名和密码    这里输入域用户名、 密码*******    选择“保存认证”,这样下次登录即不再需要认证
  • 17.  4、确定后,所选择的项目目录即从版本库中检出到本地。      检出后的目录和文件都有如下特殊的标记 。此时,这些文件就可以进行修改了。 5、检出后的目录会产生一个“.svn”的隐藏文件,将此文件删除后,本地目录即与版本库分离,可以随便删除了。 因此建议不显示隐藏文件,以免误删除。返回
  • 18. 二、修改文件并提交:  1、检出到本地的文件可以直接修改。   一旦我们改变了文件夹下边的某个文件时,TortoiseSVN就将文件的标志换成感叹号的标记 特别提醒:修改文件前,要将其所在目录做更新操作。选择目录->右键->SVN更新
  • 19.  2、检查更新    修改完成的文件检查一下是否正确。    在文件上点击右键,TortoiseSVN->检查更新
  • 20.  双击文件进行对比:    
  • 21.  3、提交    确认修改无误的文件必须执行“提交”操作,才可以更新到版本库中。    只需在文件上点击右键, 选择“SVN提交..”    
  • 22.    在弹出的窗口中输入本次提交的日志和选择需要提交的文件   (日志信息至少10个字节。建议内容包括:更改内容、CQ单号)        
  • 23. 点击“确定”之后,文件的变更信息便保存到了Subversion的版本库中了 建议: 1、不需要受控的文档可以全部修改完成后一次性提交。 2、需受控的文档或代码根据CQ单一次性提交 3、提交时选择在所有修改过的文件的顶层目录做提交操作,利用subversion的原子性可以保证项目不会存在不完整的版本。
  • 24.  4、确认提交    为了确认我们的修改已被提交到版本库,我们可以通过右键点击文件,选择“TortoiseSVN-显示日志”,结果如图 :返回
  • 25. 三、更新:   前面已经讲到,修改文件前要先做更新操作。  1、在文件夹或文件上右键 点击选择“SVN 更新”, 系统默认地将所选择的 文件夹或文件更新至 最新的版本。        
  • 26. 2、如果需要查看历史版本,则利用更新到特定的版本。 点击右键“TortoiseSVN-更新至版本”,在弹出的窗口中选择“需更新至的版本号”
  • 27. (注:Subversion的每一次提交对应一棵版本库树的快照,所以更新至某一个版本,则是update 至某一棵版本库树的快照。) 如果不确定要更新的版本号是多少,可以通过点击“显示日志”,查看每次操作对应的详细日志,从中选择所需要的版本号,见下图:
  • 28. 返回
  • 29. 四、文件提交时出现冲突的处理:  1、如果两个人同时对一个文件进行修改,且修改的是同一行内容,则提交时会报冲突 :   
  • 30. 2、此时Subversion会产生三个文件 : Filename.mine :你在本地更改后的文件,没有冲突标志。 Filename.rOLDREV :更改前的基线版本文件 Filename.rNEWREV : 已提交到Subversion客户端 ,与你的文件冲突的别人修改的文件 原本地的文件出现冲突标记:
  • 31. 3、打开标记冲突的文件,在冲突的地方将被使用“>>>>”标志出来
  • 32. 4、点击文件->TortoiseSVN->编辑冲突,自己进行合并的取舍,选定后保存。
  • 33. 5、点击合并后的文件,->TortoiseSVN->已解决的…,进入以下界面:  
  • 34. 6、确定后,解决冲突完成。文件提交到配置库中,并自动删除冲突所产生的三个文件。(如无法自动删除,可手工删除这三个文件)至此,文件提交时所产生的冲突问题处理完毕返回
  • 35. 五、文件的加锁、解锁操作: 为了避免同时修改出现冲突,可以在修改时通过锁定(可以是一个文件夹或具体文件)来限制其他人的修改。1、文件加锁 a、 选定目录或文件->TortoiseSVN->获取锁定
  • 36. (本页无文本内容)
  • 37. b、注明加锁原因,点击“确定”
  • 38. 锁定后本地文件图标变化为:
  • 39. c、文件锁定后,其他人修改后提交时,即报以下错误:
  • 40. d、自己提交后,程序自动释放锁定。 如一直需要锁定,可在提交时选择“保持锁定”
  • 41. 2、文件解锁--已经锁定的文件不需要锁定了 选定目录或文件->TortoiseSVN->解除锁定
  • 42. 文件即解锁返回
  • 43. 六、将本地目录导入版本库:--批量增加文件  1、来到我们想要导入的项目根目录,如本地D:\MyWork \Sample目录,目录下有若干个文件: 右键->TortoiseSVN->导入...
  • 44.  2、版本库URL中输入需要导入的版本库的地址,如“svn://localhost/Sample”,加入批注,确定 (与检出一样,最后一层的目录名称必须一致)
  • 45.  3、出现如下窗口表示添加成功至此选中的文件夹已导入指定的版本库中返回
  • 46. 七、增加新的文件或文件夹:1、在新文件或文件上右键点击选择“TortoiseSVN-增加..”
  • 47.  2、系统弹出确认窗口
  • 48.  3、点击确定后,文件夹会被标上加号特别提醒:这个时候,新增的文件夹还未加入版本库中去,需执行提交操作,右键“SVN 提交..”,之后新增的文件或文件夹才被全部添加到版本库中去。 返回
  • 49. 八、删除文件或文件夹:在欲删除的文件或文件夹上右键点击,选择“TortoiseSVN->删除”,然后再“SVN提交”,则所选择的文件或文件夹便从版本库删除了。 删除仅仅是在最新版本中删除,通过版本回退的方法,还是能找到的。 虽然删除的文件可以找回来,但还是希望大家慎重执行删除操作。返回
  • 50. 九、重命名:如需更改文件或文件夹的名称,需由 TortoiseSVN来做,不能直接在操作系统上重命名。 在欲重命名的文件或文件上右键点击,选择“TortoiseSVN->改名..”,在弹出的窗口中输入新的文件或文件夹名称,点击确定,将会多出一个新命名后的文件或文件夹,再将它们提交。如图:重命名是一个将原文件夹做一次复制然后删除旧文件夹将新的文件夹提交上去的过程,保留历史记录。 返回
  • 51. 十、撤消修改:在编缉了某些文件或文件后,尚未提交时,如果需要返回修改前的版本,则右键点击,选择“TortoiseSVN->SVN还原..”进行撤销,文件即恢复到修改前的版本。 返回
  • 52. 十一、分支/标记:  版本控制的一个重要特性是能将变更隔离成独立的开发线路。这就是所谓的分支(branch)。分支常用来测试新功能,但又不会因为编译错误或BUG干扰开发主线。一旦分支稳定下来,就可以把分支合并(merge)回主线(the trunk)了。   版本控制的另一个特性是标记特殊版本(比如一个可以发布的版本),这样有利于在任何时候重新创建一个特定的build或开发环境。这就是所谓的标记(tagging)。  Subversion没有什么专门的命令来branching或者tagging,而使用cheap copies来代替。Cheap copies有点像links,就像windows系统的快捷方式,并没有真正的进行复制操作。
  • 53.   分支和标记由管理员创建,客户端只要在指定的分支上操作即可。 一般版本库的布局:  
  • 54. 因此分支副本都放在版本库的/ branches目录下,操作时根据分支名检出相应的branches目录即可。 分支及标记的图示:返回
  • 55. 十二、切换:从一个分支的副本切换到另一个分支的副本  1、选择需要切换的文件或文件夹,右键点击,选择“TortoiseSVN->切换 进入以下界面:输入需要切换到的分支路径
  • 56. 删除原分支的内容,增加新选分支的内容 确定后本地版本库副本即显示新的分支内容返回
  • 57. 十三、合并:将一个分支上的修改merge到其它分支  1、进入接收修改的分支的工作副本,选择需要合并的文件或文件夹,右键点击,选择“TortoiseSVN->合并
  • 58.  2、进入以下界面
  • 59.  3、指定合并范围的起始URL和版本、指定合并范围的结束URL和版本       注意:     起始URL指的是接受修改的分支路径     结束URL指的是发送修改的分支路径     版本:可以选择最新版本,也可以通过日志选择中间节点的版本。 如果其他用户可能提交,那么要小心使用最新版本。如果有人在你最近更新之后提交了,它指代的版本可能就不是你想的那样了。   
  • 60.   4、点击合并按钮执行合并    5、查看合并结果,检查合并是否正确 合并通常很复杂,如果分支与最新版本差别很大,合并经常会出现冲突。 如果你要保持这个分支与最新版本同步,你应当经常合并,这样分支和最新版本的差别就不会太大。 返回
  • 61. 十四、显示日志--显示文件或文件夹的日志信息   右键->TortoiseSVN->显示日志返回
  • 62. 十五、检查更新--检查出所有修改过的文件的信息   右键->TortoiseSVN->检查更新返回
  • 63. 十六、版本分支图--图形化的版本显示   右键->TortoiseSVN->版本分支图返回
  • 64. 十七、更改验证的用户   在保存验证信息后,如果需要更换另一个用户登录,则需右键点击,选择“TortoiseSVN-设置”,然后从左边的选项中选择“已保存数据”,点击“认证数据”旁边的清除按钮,即可清除缓存的认证信息,下次访问时便会要求重新输入用户名和密码。 如图所示:
  • 65. 返回
  • 66. 十八、重新定位   如果SVN的服务器由于某些原因改变了地址,客户端就不能做任何操作了,此时需要重新定位版本库的URL。 重定位只能在版本库路径修改时使用,可能的原因是: 服务器的IP地址已更改。 协议已更改(比如从http://改为 https://)。 版本库在服务器的路径已更改。
  • 67. 目录->TortoiseSVN->重新定位
  • 68. 输入新的版本库URL确定后提示重新认证,输入用户名、密码即完成重定位返回
  • 69. SubVersion介绍 客户端TortoiseSVN安装 客户端TortoiseSVN操作指南  1、资源管理器上的操作  2、SVN版本库浏览器上的操作
  • 70. 一、查看版本库情况:  1、TortoiseSVN--》版本库浏览器
  • 71.  2、URL中输入需要查看的版本库的地址   (登录过的地址,即保存在系统中了,下次登录直接在下拉框中选择)
  • 72.  3、确定后即可查看版本库数据
  • 73.  4、可以通过点击版本库浏览器中的树状列表来浏览库 中的文件,点击右键即可进行其它操作
  • 74. 二、从版本库浏览器进行的相关操作:  1、显示日志:显示版本库中此目录和目录下文件的日志信息, 包括各种操作记录。 2、版本分支图:
  • 75.  3、导出:从版本库导出到本地文件夹。 导出的文件就脱离版本控制了。 图标如: 4、检出:从版本库检出到本地文件夹。 检出的文件和服务器端的版本信息有关联 图标如:
  • 76. 5、重新整理:即刷新,可以更新所作的操作。 6、创建文件夹:在某个目录下新建文件夹,可以自定义 名称,中英文都可以
  • 77. 7、加入文件:可以直接从本地或网络硬盘中加入文件到此 目录中,只能单选,不可多选,有点不太方 便。 8、加入文件夹:可以直接从本地或网络硬盘中加入文件夹 到此目录中(只能加一层目录,不建议使用)。 9、删除:删除该文件夹中和文件夹下的所有文件。 10、改名:对文件夹重新命名。
  • 78. 11、复制至工作拷贝:拷贝到本地一个版本控制的工作目录。 完成后新增的内容图标如下:需执行提交操作才能入库 12、复制到:拷贝此文件夹到版本库的其他目录中。 13、复制URL:复制当前的文件路径: 如 http://10.44.19.8/svn/IPM_DOC 14、显示属性:暂无作用
  • 79. 特别提醒: 客户端在资源管理器的操作,完成后需要执行“提交”操 作,才能更新到版本库中。 版本库浏览器中的操作,不需要提交,会有日志标明直 接远程完成动作。 如:返回
  • 80.   附:Subversion与Clearcase对比 CCSVN版本编号方式具体文件编号:每个文件有自己独立的编号项目版本库整体编号:整个项目版本库从版本号0开始,检入一个改动后项目版本库的版本号往上加一,变成1、2、3。。每个文件的版本号可能是不连续的工作空间提供动态视图和静态视图检出到本地资源管理器相当于静态视图,版本库浏览器相当于动态视图检出check out从视图中把一个文件的属性从只读变成可写。第一次建立我们的工作拷贝,即检出后,所有的文件都是可读写的。提交Check in 即可以将文件修改更新到库中执行“提交”操作,将修改更新到版本库更新update更新归并merge合并
  • 81. (本页无文本内容)