• 1. TortoiseSVN使用方法 大智慧质量部倪志嘉 2010-7-21
  • 2. TortoiseSVN 简介与特性免费开源 时间机器 通用系统 外壳集成 重载图标
  • 3. 主要功能介绍代码导入 代码检出 提交更新 添加文件 更新代码 删除文件
  • 4. 导入源码至SVN服务器右单击所要导入的项目文件夹点击Import(导入)弹出导入窗体 点击OK(确定) 输入身份凭据完成导入
  • 5. 检出源代码到本机右单击所要检出的文件夹,点击Checkout(检出)Checkout Depth(检出深度) 全递归 直接子节点,包含文件夹 仅文件子节点 仅此项 点击OK(确定),检出如下目录
  • 6. 本地文件,文件夹修改一旦对文件或文件夹做了任何修改,那么文件或文件夹的显示图片就会发生变化不同状态对应标识
  • 7. 提交修改过的文件到SVN服务器在已修改文件所在的文件夹上右击或在文件夹下的空白处右击,然后点击SVN Commit...(SVN 提交) 注:确保本机代码为最新版本*Commit不仅仅是上传...... 对比服务器文件,自动Merge其他人的更新 自动Merge报冲突,手动Merge 填写Log,多人合作*无需上传的文件..... 向SVN服务器提交源代码的时候,一定不要提交bin、obj 等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。
  • 8. 添加新文件(夹)到SVN服务器在新添加的文件上右击,然后点击TortoiseSVN=>>Add(添加) 标记:代码库中的文件 状态:修改状态 SVN Commit
  • 9. 更新本机代码与服务器最新版本一致在需要更新的文件夹上右击或在文件夹下的空白处右击,然后点击SVN Update(SVN 更新) 注意点: 提交修改前Update 版本冲突用Merge解决 锁定用Release Lock解锁 版本冲突
  • 10. 删除文件或文件夹两种方法: 直接删除文件或文件夹,使用SVN Commit提交更新到服务器 在要删除的文件或文件夹上点击右键=>>TortoiseSVN=>> 删除 SVN Commit
  • 11. 辅助功能介绍重命名文件(夹) 建立分支,标记 分支-主干切换 版本差别比较
  • 12. 重命名文件或文件夹只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>改名…,在弹出的窗体中输入新名称,点击确认按钮 SVN Commit
  • 13. 分支的概念 分支的概念:开发的一条线独立于另一条线,如果回顾历史,可以发现 两条线分享共同的历史,一个分支总是从一个备份开始的,从那里开始,发展自己独有的历史。 分支的管理:把不同的分支用不同的文件保存,因此你在取得新版本的时候会发现,不同分支的最新文件也会被获取下来。创建tag操作,相当于把当前的代码版本复制一份到其他地方,然后以这个地方为出发点进行新的开发,与原来位置的版本互不干扰。
  • 14. 为一个SVN主工程建立分支或tag 操作步骤: 选择你要产生分支的文件,右击选择[分支/标记...] 2.在“至URL(T)”输入框中将文件重命名为你的分支文件名,输入便于区分的日志信息,点击确认。 在SVN仓库中会复制一个你所指定的文件,文件名称就是你所命名的,但是在你的本地目录上看不到新建的分支文件名,要使你的文件更新作用到你的分支上,你必须选择文件,点击鼠标右键,选择[切换...],选择你重命名的文件,点击确定即可。 本地文件就和分支文件关联上了,不要奇怪,这时本地目录上看到的文件名仍然为旧的文件名。
  • 15. 同一个工程的各个分支或者主干之间切换使用Tortoise SVN—>切换 ,在URL中输入branch或trunk的url地址
  • 16. 比较两个版本之间的差别两种情况: •如果你想看到你的本地副本有哪些更新,只用在资源管理器中右键菜单下选TortoiseSVN→ 比较差异。 •如果你想查看主干程序(假如你在分支上开发)有哪些修改或者是某一分支(假如你在主干上开发)有哪些修改,你可以使用右键菜单。在你点击文件的同时按住Shift键,然后选择TortoiseSVN→ URL比较。在弹出的对话框中,将特别显示将与你本地版本做比较的版本的URL地址。
  • 17. 其他菜单功能介绍(1)版本库浏览器: 查看当前版本库,这是TortoiseSVN查看版本库的口,通过这个菜单项,我们就可以进入配置库的资源管器,然后就可以对配置库的文件夹进行各种管理,相当于我们打开我的电脑进行文件管理一样。 查看文件的分支或版本结构,可以点击版本分支图,系统以图形化形式显示版本分支。
  • 18. 其他菜单功能介绍(2)从版本库中获取某一个历史版本。这个功能主要是方便查看历史版本用,而不是回滚版本。 *注意:获取下来之后,对这个文件不建议进行任何操作。如果你做了修改,那么当你提交的时候SVN会提示你,当前版本已失效(即不是最新版本),无法提交,需要先更新一下。这样你所做的修改也就白费了。 如果你对工作拷贝做了一些修改,但是你又不想要了,那么你可以使用这个选项把所做的修改撤销如果当前工作拷贝和版本库上的有冲突,不能自动合并到一起,那么当你提交修改的时候,tortoisesvn就会提示你存在冲突,这时候你就可以通过这个菜单项来解决冲突。 *冲突的解决有两种: 1. 保留某一份拷贝,例如使用配置库覆盖当前工作拷贝,或者反过来。 2. 手动解决冲突,对于文本文件,可以使用tortoiseSVN自带的工具,它会列出存在冲突的地方,然后你就可以和提交者讨论怎么解决这个冲突。
  • 19. 其他菜单功能介绍(3)如果你不想别人修改某个文件的话,那么你就可以把这个文件进行加锁,这样可以保证只有你对这个文件有修改权。除非你释放了锁,否则别人不可能提交任何修改到配置库中 如果当前工作拷贝有任何问题的话,可以使用这个选项进行修正。例如,有些文件原来是版本控制的,但是你没有通过tortoiseSVN就直接删除了,但是tortoiseSVN还是保留着原来的信息(每个文件夹下都有一个.svn的隐藏文件夹,存放着当前文件夹下所有文件夹的版本信息)所以这就会产生一些冲突。可以使用清理菜单来清理一下。
  • 20. 其他菜单功能介绍(4)把整个工作拷贝导出到本地目录下,导出的文件将不带svn文件标志,文件及文件夹没有绿色的”√”符号标志。 *导出与检出的区别: 当你要发布或编译的时候,最好采用导出,它不会引入svn的附加文件,这样文件结构显得比较干净。 而当你需要修改和提交的时候,用检出,它会在你本地建立一个工作区,Checkout到某处的代码,将会被 TortoiseSVN监视,里面的文件可以享受各种SVN的服务。当服务器上的文件库目录已经改变,我们可以把工作 拷贝重新定位,在To URL输入框中输入新的地址
  • 21. 其他菜单功能介绍(5)大多数项目会有一些文件(夹)不需要版本控制,如编译产生的*.obj, *.lst,等。每次送交,TortoiseSVN提示那些文件不需要控制,挺烦的。这时候可以把这些文件加入忽略列表。 如果管理员不想让任何人都随便提交修改,而是都要经过审核才能做出修改,那么其他人就可以通过创建补丁的方式,把修改信息(补丁文件)发送给管理员,管理员审核通过之后就可以使用应用补丁提交这次修改了。
  • 22. 用户密码修改配置库URL
  • 23. 附:branches、tags、trunk参考使用方法•开发者提交所有的新特性到主干。 每日的修改提交到/trunk:新特性,bug修正和其他。 •这个主干被拷贝到“发布”分支。 当小组认为软件已经做好发布的准备(如,版本1.0)然后/trunk会被拷贝到/branches/1.0。 •项目组继续并行工作,一个小组开始对分支进行严酷的测试,同时另一个小组在/trunk继续新的工作(如,准备2.0),如果一个bug在任何一个位置被发现,错误修正需要来回运送。然而这个过程有时候也会结束,例如分支已经为发布前的最终测试“停滞”了。 •分支已经作了标签并且发布,当测试结束,/branches/1.0作为引用快照已经拷贝到/tags/1.0.0,这个标签被打包发布给客户。 •分支多次维护。当继续在/trunk上为版本2.0工作,bug修正继续从/trunk运送到/branches/1.0,如果积累了足够的 bug修正,管理部门决定发布1.0.1版本:拷贝/branches/1.0到/tags/1.0.1,标签被打包发布。 •一般建立最初的repository时,就建好这三个目录,把所有代码放入/trunk中,如:要将project1目录下的代码导入 repository,project1的结构就是:project1/branches,project1/tags,project1 /trunk,project1/trunk/food.c,project1/trunk/egg.pc……,然后将project1目录导入 repository,建立最初的资料库。然后export回project1,作为本地工作目录。