首页 Tortoisesvn 操作入门指南

Tortoisesvn 操作入门指南

举报
开通vip

Tortoisesvn 操作入门指南Tortoisesvn 操作入门指南 SVN操作入门指南 SVN操作入门指南 文档历史 版本 修改内容 修改时间 修改人 批准人 2008/11/14 0.1 initial draft初稿 2008/11/16 0.2 细化了局部细节,增加了基本约定。 为什么选择SVN , 以目录为基础的版本控制,操作方式类似于本地的文件操作,与一般的使用习惯比较接 近。比CVS系统更加方便使用。 , 命令类似于最常用的CVS版本控制系统,对于习惯CVS的人来说,比较容易上手。 , 分支管理方式非常方便,有利于...

Tortoisesvn 操作入门指南
Tortoisesvn 操作入门指南 SVN操作入门指南 SVN操作入门指南 文档历史 版本 修改内容 修改时间 修改人 批准人 2008/11/14 0.1 initial draft初稿 2008/11/16 0.2 细化了局部细节,增加了基本约定。 为什么选择SVN , 以目录为基础的版本控制,操作方式类似于本地的文件操作,与一般的使用习惯比较接 近。比CVS系统更加方便使用。 , 命令类似于最常用的CVS版本控制系统,对于习惯CVS的人来说,比较容易上手。 , 分支管理方式非常方便,有利于协同开发工作。 , 有非常成熟的windows客户端程序——TortoiseSVN,简单易用。 重要约定: 1. 所有目录名称,必须使用英文名称,并且注意避免英文名称的拼写错误。文档的名称, 也建议使用英文名称。 2. 项目目录的建立,必须由部门经理确认。项目的版本号,必须由部门经理来分配。 3. 所有的源代码都必须提交到SVN服务器上,并且有规范的目录结构。 4. 所有提交测试的版本,必须是从SVN服务器上直接检出的版本,必须记录对应的版本号。 5. 员工在每天下班前,必须提交本日的工作副本,确保最新版本的代码都提交到SVN服务 器上。 6. 如果因为个人原因造成代码的丢失而不可恢复,将在绩效考核时扣除相应的分数。 SVN操作入门指南 TortoiseSVN日常使用介绍 本文目的在与描述TortoiseSVN客户端的日常使用。不是一个版本控制系统指南,也不是Subversion (SVN)的指南。本文档的价值在于,当你知道大概要做什么,却又记不起应该怎么做的时候,可以有个参考的地方。 SVN是一个非常强大的系统,同样,TortoiseSVN也是一个非常强大的客户端,我们不可能在这个文档中把每一个功能都介绍详细,同时也希望对SVN工具有经验的同事能够不断的丰富这个文档,与大家分享你的经验。 如果需要更高级的应用和设置,请参考TortoiseSVN 手册。中文版的翻译的实在是不怎么样,如果有阅读能力,建议大家直接看英文原版。 如果你需要了解使用Subversion进行版本控制的指南,我们建立你阅读以下这本梦幻之书:《使用 Subversion 进行版本管理》 [] TortoiseSVN 手册:TortoiseSVN-1.5.5-zh_CN.pdf 使用 Subversion 进行版本管理:svnbook.pdf 安装TortoiseSVN 最新版本:TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi 中文语言包:LanguagePack_1.5.5.14361-win32-zh_CN.msi 先安装最新版本的客户端程序,然后安装中文语言包。一路next即可。 导入数据到版本库 注意: 只有你新建了一个项目,并且第一次将文件加入到版本库时,才需要做这个操作。 如果你是在原来的基础版本库基础上做开发,则直接检出工作副本即可,不需要导入数据到版本库。 对于每一个项目,都必须有以下三个目录: /path/to/project/name/trunk /path/to/project/name/branches /path/to/project/name/tags 这三个目录分别表示该项目的主干版本、分支版本和发布版本。 在这三个目录下面还可以根据实际开发的需要,建立不同的目录。Trunk目录下面应该是开发环境的基本维护情况。Branches目录下面,应该首先是各个分支的目录,然后是分支开发环境的目录。 以下我们都以一个helloworld项目作为实例。 1. 在本地建立SVN文件夹,在SVN目录下建立你的项目的目录,例如:helloworld SVN操作入门指南 2. 在helloworld目录下建立trunk、branches、tags三个目录,如图1 图1 建立基本目录结构 3. 在helloworld上面点击邮件,选择导入,如图2 图2 导入目录结构 4. 弹出导入对话框,并且在对话框的版本库URL中输入版本库URL地址,技术二部的 所有项目都导入到Tech2New目录下面,自建项目目录。在导入信息中,填入这次 导入数据的注释。应该尽可能详细的描述这个项目的内容,让大家一看就明白。如 图3 SVN操作入门指南 图3 导入信息框 5. 接着会弹出导入成功或者失败的信息。如果导入成功,在使用版本库浏览器查看时, 就可以看到版本库中已经有建立好的目录结构了。如图4. 图4 版本库中的目录结构 6. 导入成功之后,需要重新检出版本,才可以继续下面的操作。在本地helloworld文 件夹上点击右键,选择“SVN检出”,选择正确的版本库URL和检出至目录 版本库URL:svn://192.168.0.5:6000/proj/www/Tech2New/helloworld 检出至目录:D:\SVN\helloworld 按“确定”检出即可。 7. 此后,在这些目录中不断添加目录和文件,然后更新到版本库中即可。 添加新文件和目录 SVN的最大特点就是他的操作方式跟我们日常的文件系统操作几乎是一模一样的,非常简单。我们需要增加文件或者目录,只要在需要增加的目录下面添加文件或者目录,也可以从别的地方复制文件或者目录到需要的文件夹下面。然后右键点击需要增加的文件夹(如helloworld文件夹),选择“增加”,就会出现增加文件和目录的对话框,如图5. SVN操作入门指南 图5 增加文件和目录 添加完成之后实际上并没有真正提交到版本库中,此时你在版本库的服务器上还不能看到这些文件和目录。这个跟CVS的原理相同,你必须重新确认提交,才能完成提交过程。 选择helloworld文件夹,点击邮件,选择“SVN提交”,弹出提交对话框,仔细填写提交信息,我们要求,每次提交都必须填写提交信息。如图6 SVN操作入门指南 图6 SVN提交对话框 SVN提交对话框将是我们在日后工作中最常看到的对话框,每次大家更新了文档、代码、数据等等之后,都需要用提交功能来提交到服务器上(参考提交修改到版本库章节)。 忽略文件和目录 有一些编译过程中的中间文件,其实没有必要提交到svn上面,但只要你放在目录下面,每次提交时都会提示你是不是需要提交。 最好的避免类似问题的方法是添加参考文件到该项目的忽略列表。这样他们就永远不会出现在提交对话框中,而真正的未版本控制文件则仍然列出。 如果你右键一个单独的未版本控制文件,并从菜单栏选择TortoiseSVN-->加入忽略列表,会出现一个子菜单允许你仅选择该文件,或者所有具有相同后缀的文件。如果你选择多种文件,那么就没有子菜单了,你仅能添加这些特定的文件/目录。 如果你想从忽略列表中移除一个或多个条目,右击这些条目,选择TortoiseSVN --> 从忽略列表删除。 SVN操作入门指南 检出工作副本 如果你参与的项目已经存在于版本库中,则需要在你开始工作之间,从版本库中检出你的工作副本。 在本地文件系统任意位置建立一个文件夹,作为存放检出工作副本的目录。在该目录下任意位置点击右键,选择“SVN检出”,弹出检出对话框。选择你需要检出的工作副本,主干或者某一个分支,建议大家根据需要检出内容,不要直接检出项目的全部内容。并且选定检出至目录,如果此文件夹不存在,则会自动创建。检出深度一般选择全递归即可,表示检出这个目录以下的所有子目录和文件,其他选项就不一一介绍了。如图7 图7 检出工作副本 图7表示检出了项目的主干版本来开发。如果是在协同工作的环境下,建议使用分支开发的方式。检出一个开发分支到本地来工作,最后将分支合并到主干之后发布。这是最安全、可靠、高效的工作方式。 检出分支作为工作副本的方式与检出主干相同,选择对应的版本库URL和检出至目录即可。 提交你的修改到版本库 这是我们最常用的操作,其操作也非常简单。在需要提交的文件或者文件夹上面点击右键,直接选择“SVN提交”,就会显示提交对话框。提交对话框会自动显示变更的列表以及提交至版本库的位置。并且提示你写入提交信息。认真填写提交信息,并且选择你需要提交的内容之后,点击确定即可。如图7. SVN操作入门指南 图7 提交更新 如果在同一个主干或者分支上面其他人也提交了修改,此时工具会提示你其他人也提交了修改,你的提交失败了。你必须首先把其他人提交的内容更新下来,并且与你的提交进行合并,然后再次提交(如何更新副本,参考下一章节)。如图8 图8 提交失败 SVN操作入门指南 更新你的工作副本 如果在你工作的副本上有其他人员在协同开发,则需要更新你的副本,并且合并其他人的修改之后才可以提交。 我们一般建议你在开始做开发之前,将工作副本更新到最新版本。 在你的工作副本上面点击右键,选择“SVN更新”,工具会立即开始帮助你更新,并且显示更新的进度和更新的情况。如图9 图9 用别人的修改来更新你的工作副本 此时你的代码是不能提交的,你必须先解决掉这些冲突,并且确认其他人的修改对你的改动是没有影响,才能继续提交。 解决冲突 如果你在本地修改了工作副本,并且有其他协同工作者提交了新的版本,那么在你更新之后,可能会出现冲突。你必须解决完全部冲突之后才可以再次提交你的修改。 冲突出现的原因是两个开发人员修改了文件中相同的几行。由于Subversion不知道你的项目的具体情况,它把解决冲突的工作留给了开发人员。一旦出现冲突,你就应该打开有问题的文件,查找以字符串<<<<<<<开头的行。 有冲突的区域用如下的方式标记: <<<<<<< filename 你的修改 ======= 来自版本库中的代码 >>>>>>> revision 对于每个冲突的文件Subversion在你的目录下放置了三个文件: filename.ext.mine 这是你的文件,在你更新你的工作副本之前存在于你的的工作副本中——也就是说,没有冲突标志。这个文件除了你的最新修改外没有别的东西。 SVN操作入门指南 filename.ext.rOLDREV 这是在你更新你的工作副本之前的基础版本(BASE revision)文件。也就是说,它是在你做最后修改之前所检出的文件。 filename.ext.rNEWREV 这个文件是当你更新你的工作副本时,你的Subversion客户端从服务器接收到的。这个文件对应与版本库中的最新版本。 你可以通过“TortoiseSVN,编辑冲突”运行外部合并工具/冲突编辑器,或者你可以使用任何别的编辑器手动解决冲突。你需要冲定哪些代码是需要的,做一些必要的修改然后保存。 然后,执行命令“TortoiseSVN,已解决”(有的编辑器中可以直接设置为已解决状态,这就不再需要使用这个命令),并提交你的修改到版本库。需要注意的是已解决命令并不是真正的解决了冲突,它只是删除了filename.ext.mine和filename.ext.r*两个文件,允许你提交修改。 如果你的二进制文件有冲突,Subversion不会试图合并文件。本地文件保持不变(完全是你最后修改时的样子),但你会看到filename.ext.r*文件。如果你要撤消你的修改,保留版本库中的版本,请使用还原(Revert)命令。如果你要保持你的版本覆盖版本库中的版本,使用已解决命令,然后提交你的版本。 你可以右键单击父文件夹,选择TortoiseSVN,已解决...,使用“已解决”命令来解决多个文件。这个操作会出现一个对话框,列出文件夹下所有有冲突的文件,你可以选择将哪些标记成已解决。 查看差别 通常你想要深入文件中了解你修改了什么。要达到这个目的,你可以选中这个文件,然后在TortoiseSVN的右键菜单中选择比较。这个操作会启动一个外部的差别检查程序,由它来比较当前文件与上一次检出或更新后的原始的副本(基础版本)。 即使你不是在一个工作副本中工作或者你有多个版本的文件,你都可以按以下方法来进行比较: 选择你要比较的两个文件(比如,你可以使用Ctrl 键加鼠标),然后从TortoiseSVN的右键菜单中选择比较。最后一个被鼠标点中的文件(具有焦点的文件,比如有虚线框的文件具有焦点),将作为被比较文件的后一个。 查看日志 对于每次进行修改和提交,你应该有针对性地留下日志信息。这样,你就可以在以后方便地看到你都做了什么,为什么这么做。当然这么做还是你拥有了开发过程的详细日志。 选中你要查看的文件或者目录,使用TortoiseSVN,显示日志功能,即可显示该文件夹或者文件的所有修改的历史。 版本日志对话框可以获取所有的日志信息,并将其显示出来。对话框的视图分成3个面板。 , 最上方的面板显示了版本的列表。这其中包含了日期和时间,以及提交的用户和日志信 息开头的部分内容。 SVN操作入门指南 以蓝色显示的行表示某些内容被复制到该开发版本中(可能是从一个分支中复制而来)。 , 中间的面板显示了被选中的版本的完整的日志信息。 , 最下面的面板显示了被选中版本中都对哪里文件和文件夹进行了修改。 当然,对话框的作用不止于此——它提供了右键菜单,通过它可以获取更多的项目历史信息。如图10. 图10 查看日志对话框 分支和标记 版本控制系统的一个特性是能够把各种修改分离出来放在产品的一个分割线上。这条线被称为分支。分支经常被用来试验新的特性,而不会对开发有编译错误的干扰。当新的特性足够稳定之后,产品的分支就可以合并回主分支里(即主干)。 版本控制系统的另一个特性是能够标记特殊的版本(例如某个发布版本),所以你可以在任何时候重新建立一个特定的构件和环境。这个过程被称作标记。 SVN没有复杂的命令来做这些控制,取而代之的是一种称为轻量级拷贝的方式来做分支和标记。其实际操作过程也非常简单,直接在版本库中进行了复制,不需要进行本地操作。 在你的开发版本上面右键单击,使用TortoiseSVN,分支/标记 命令,就会弹出分支/标记对话框。如图11。他自动把工作副本的URL带入到对话框中,并且让你输入分支或者标记的URL。填写好相关的信息之后,点击确定即可。同时,如果你选中了切换工作副本到分支/标记,则本地的开发副本就会从原来的位置,切换到新的分支上。 切换分支也可以使用TortoiseSVN,切换 命令来完成。当然,你也可以重新使用检出工作副本的方式,检出一个分支或者标记。 SVN操作入门指南 图11 建立分支和标记 而对于最终发布的版本,应该在tags目录下建立release版本。 分支命名方式:version-x.x.x (x应该是数字,x.x.x即版本号),例如version-1.1.0 发布版本命名方式:release_rLASTVER_x.x.x,例如release_r19805_1.1.0。其中r19805是svn的对应版本,1.1.0是项目的发布版本。他们之间的对应关系可以让我们以后可以方便的检出需要的版本。 分支的合并 我们建议采用 主干+分支 的开发模式,就是说,主干上一直保留最新的release版本,所有的开发工作都在分支上进行,分支开发完成之后合并到主干上,形成新的主干release版本,并且发布到tags里面。 TortoiseSVN提供了三种非常方便的分支合并方式:合并一个版本范围、复兴分支、合并两个不同的树。我们采用主干分支的开发模式,最常用的就是把分支合并到主干上,也就是合并两个不同的树。这里我们也主要介绍这种方法,其他的方法请参考TortoiseSVN 手册。 在工作副本上使用TortoiseSVN,合并 命令,就会弹出合并对话框。选择合并两个不同的树,点击下一步,弹出合并的向导,如图12。 SVN操作入门指南 图12 合并两个不同的树 在起始URL中选择主干的URL,在结束URL中选择分支的URL。即,以主干版本为基础,将分支上的修改合并到主干上。可以指定的版本,也可以直接合并最新版本。 合并完成之后,将你的工作副本切换到主干,并且对主干上的冲突进行处理,处理完成之后提交主干版本,并且发布新的release版本,提供给QA测试或者是OP用来上线。 如果使用到其他的合并方式,请参考TortoiseSVN 手册。 参考文献列表 TortoiseSVN 手册:TortoiseSVN-1.5.5-zh_CN.pdf 使用 Subversion 进行版本管理:svnbook.pdf
本文档为【Tortoisesvn 操作入门指南】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_358746
暂无简介~
格式:doc
大小:277KB
软件:Word
页数:0
分类:互联网
上传时间:2018-05-05
浏览量:17