Tortoisesvn 操作入门指南_第1页
Tortoisesvn 操作入门指南_第2页
Tortoisesvn 操作入门指南_第3页
Tortoisesvn 操作入门指南_第4页
Tortoisesvn 操作入门指南_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、svn操作入门指南svn操作入门指南文档历史版本修改内容修改时间修改人批准人0.1initial draft初稿2008/11/140.2细化了局部细节,增加了基本约定。2008/11/16为什么选择svnl 以目录为基础的版本控制,操作方式类似于本地的文件操作,与一般的使用习惯比较接近。比cvs系统更加方便使用。l 命令类似于最常用的cvs版本控制系统,对于习惯cvs的人来说,比较容易上手。l 分支管理方式非常方便,有利于协同开发工作。l 有非常成熟的windows客户端程序tortoisesvn,简单易用。重要约定:1. 所有目录名称,必须使用英文名称,并且注意避免英文名称的拼写错误。文档

2、的名称,也建议使用英文名称。2. 项目目录的建立,必须由部门经理确认。项目的版本号,必须由部门经理来分配。3. 所有的源代码都必须提交到svn服务器上,并且有规范的目录结构。4. 所有提交测试的版本,必须是从svn服务器上直接检出的版本,必须记录对应的版本号。5. 员工在每天下班前,必须提交本日的工作副本,确保最新版本的代码都提交到svn服务器上。6. 如果因为个人原因造成代码的丢失而不可恢复,将在绩效考核时扣除相应的分数。tortoisesvn日常使用介绍本文目的在与描述tortoisesvn客户端的日常使用。不是一个版本控制系统指南,也不是subversion (svn)的指南。本文档的价

3、值在于,当你知道大概要做什么,却又记不起应该怎么做的时候,可以有个参考的地方。svn是一个非常强大的系统,同样,tortoisesvn也是一个非常强大的客户端,我们不可能在这个文档中把每一个功能都介绍详细,同时也希望对svn工具有经验的同事能够不断的丰富这个文档,与大家分享你的经验。如果需要更高级的应用和设置,请参考tortoisesvn 手册。中文版的翻译的实在是不怎么样,如果有阅读能力,建议大家直接看英文原版。如果你需要了解使用subversion进行版本控制的指南,我们建立你阅读以下这本梦幻之书:使用 subversion 进行版本管理 http:/svnbook.red-tortois

4、esvn 手册:tortoisesvn-1.5.5-zh_cn.pdf使用 subversion 进行版本管理:svnbook.pdf安装tortoisesvn最新版本:tortoisesvn-4361-win32-svn-1.5.4.msi中文语言包:languagepack_4361-win32-zh_cn.msi先安装最新版本的客户端程序,然后安装中文语言包。一路next即可。导入数据到版本库注意:只有你新建了一个项目,并且第一次将文件加入到版本库时,才需要做这个操作。如果你是在原来的基础版本库基础上做开发,则直接检出工作副本即可,不需要导入数据到版本库。对于

5、每一个项目,都必须有以下三个目录:/path/to/project/name/trunk/path/to/project/name/branches/path/to/project/name/tags这三个目录分别表示该项目的主干版本、分支版本和发布版本。在这三个目录下面还可以根据实际开发的需要,建立不同的目录。trunk目录下面应该是开发环境的基本维护情况。branches目录下面,应该首先是各个分支的目录,然后是分支开发环境的目录。以下我们都以一个helloworld项目作为实例。1. 在本地建立svn文件夹,在svn目录下建立你的项目的目录,例如:helloworld2. 在hellow

6、orld目录下建立trunk、branches、tags三个目录,如图1图1 建立基本目录结构3. 在helloworld上面点击邮件,选择导入,如图2图2 导入目录结构4. 弹出导入对话框,并且在对话框的版本库url中输入版本库url地址,技术二部的所有项目都导入到tech2new目录下面,自建项目目录。在导入信息中,填入这次导入数据的注释。应该尽可能详细的描述这个项目的内容,让大家一看就明白。如图3图3 导入信息框5. 接着会弹出导入成功或者失败的信息。如果导入成功,在使用版本库浏览器查看时,就可以看到版本库中已经有建立好的目录结构了。如图4.图4 版本库中的目录结构6. 导入成功之后,需

7、要重新检出版本,才可以继续下面的操作。在本地helloworld文件夹上点击右键,选择“svn检出”,选择正确的版本库url和检出至目录版本库url:svn:/:6000/proj/www/tech2new/helloworld检出至目录:d:svnhelloworld按“确定”检出即可。7. 此后,在这些目录中不断添加目录和文件,然后更新到版本库中即可。添加新文件和目录svn的最大特点就是他的操作方式跟我们日常的文件系统操作几乎是一模一样的,非常简单。我们需要增加文件或者目录,只要在需要增加的目录下面添加文件或者目录,也可以从别的地方复制文件或者目录到需要的文件夹下面。

8、然后右键点击需要增加的文件夹(如helloworld文件夹),选择“增加”,就会出现增加文件和目录的对话框,如图5.图5 增加文件和目录添加完成之后实际上并没有真正提交到版本库中,此时你在版本库的服务器上还不能看到这些文件和目录。这个跟cvs的原理相同,你必须重新确认提交,才能完成提交过程。选择helloworld文件夹,点击邮件,选择“svn提交”,弹出提交对话框,仔细填写提交信息,我们要求,每次提交都必须填写提交信息。如图6图6 svn提交对话框svn提交对话框将是我们在日后工作中最常看到的对话框,每次大家更新了文档、代码、数据等等之后,都需要用提交功能来提交到服务器上(参考提交修改到版本

9、库章节)。忽略文件和目录有一些编译过程中的中间文件,其实没有必要提交到svn上面,但只要你放在目录下面,每次提交时都会提示你是不是需要提交。最好的避免类似问题的方法是添加参考文件到该项目的忽略列表。这样他们就永远不会出现在提交对话框中,而真正的未版本控制文件则仍然列出。如果你右键一个单独的未版本控制文件,并从菜单栏选择tortoisesvn-加入忽略列表,会出现一个子菜单允许你仅选择该文件,或者所有具有相同后缀的文件。如果你选择多种文件,那么就没有子菜单了,你仅能添加这些特定的文件/目录。如果你想从忽略列表中移除一个或多个条目,右击这些条目,选择tortoisesvn - 从忽略列表删除。检出

10、工作副本如果你参与的项目已经存在于版本库中,则需要在你开始工作之间,从版本库中检出你的工作副本。在本地文件系统任意位置建立一个文件夹,作为存放检出工作副本的目录。在该目录下任意位置点击右键,选择“svn检出”,弹出检出对话框。选择你需要检出的工作副本,主干或者某一个分支,建议大家根据需要检出内容,不要直接检出项目的全部内容。并且选定检出至目录,如果此文件夹不存在,则会自动创建。检出深度一般选择全递归即可,表示检出这个目录以下的所有子目录和文件,其他选项就不一一介绍了。如图7图7 检出工作副本图7表示检出了项目的主干版本来开发。如果是在协同工作的环境下,建议使用分支开发的方式。检出一个开发分支到

11、本地来工作,最后将分支合并到主干之后发布。这是最安全、可靠、高效的工作方式。检出分支作为工作副本的方式与检出主干相同,选择对应的版本库url和检出至目录即可。提交你的修改到版本库这是我们最常用的操作,其操作也非常简单。在需要提交的文件或者文件夹上面点击右键,直接选择“svn提交”,就会显示提交对话框。提交对话框会自动显示变更的列表以及提交至版本库的位置。并且提示你写入提交信息。认真填写提交信息,并且选择你需要提交的内容之后,点击确定即可。如图7.图7 提交更新如果在同一个主干或者分支上面其他人也提交了修改,此时工具会提示你其他人也提交了修改,你的提交失败了。你必须首先把其他人提交的内容更新下来

12、,并且与你的提交进行合并,然后再次提交(如何更新副本,参考下一章节)。如图8图8 提交失败更新你的工作副本如果在你工作的副本上有其他人员在协同开发,则需要更新你的副本,并且合并其他人的修改之后才可以提交。我们一般建议你在开始做开发之前,将工作副本更新到最新版本。在你的工作副本上面点击右键,选择“svn更新”,工具会立即开始帮助你更新,并且显示更新的进度和更新的情况。如图9图9 用别人的修改来更新你的工作副本此时你的代码是不能提交的,你必须先解决掉这些冲突,并且确认其他人的修改对你的改动是没有影响,才能继续提交。解决冲突如果你在本地修改了工作副本,并且有其他协同工作者提交了新的版本,那么在你更新

13、之后,可能会出现冲突。你必须解决完全部冲突之后才可以再次提交你的修改。冲突出现的原因是两个开发人员修改了文件中相同的几行。由于subversion不知道你的项目的具体情况,它把解决冲突的工作留给了开发人员。一旦出现冲突,你就应该打开有问题的文件,查找以字符串开头的行。有冲突的区域用如下的方式标记: revision对于每个冲突的文件subversion在你的目录下放置了三个文件:filename.ext.mine这是你的文件,在你更新你的工作副本之前存在于你的的工作副本中也就是说,没有冲突标志。这个文件除了你的最新修改外没有别的东西。filename.ext.roldrev这是在你更新你的工作

14、副本之前的基础版本(base revision)文件。也就是说,它是在你做最后修改之前所检出的文件。filename.ext.rnewrev这个文件是当你更新你的工作副本时,你的subversion客户端从服务器接收到的。这个文件对应与版本库中的最新版本。你可以通过“tortoisesvn编辑冲突”运行外部合并工具/冲突编辑器,或者你可以使用任何别的编辑器手动解决冲突。你需要冲定哪些代码是需要的,做一些必要的修改然后保存。然后,执行命令“tortoisesvn已解决”(有的编辑器中可以直接设置为已解决状态,这就不再需要使用这个命令),并提交你的修改到版本库。需要注意的是已解决命令并不是真正的解

15、决了冲突,它只是删除了filename.ext.mine和filename.ext.r*两个文件,允许你提交修改。如果你的二进制文件有冲突,subversion不会试图合并文件。本地文件保持不变(完全是你最后修改时的样子),但你会看到filename.ext.r*文件。如果你要撤消你的修改,保留版本库中的版本,请使用还原(revert)命令。如果你要保持你的版本覆盖版本库中的版本,使用已解决命令,然后提交你的版本。你可以右键单击父文件夹,选择tortoisesvn已解决.,使用“已解决”命令来解决多个文件。这个操作会出现一个对话框,列出文件夹下所有有冲突的文件,你可以选择将哪些标记成已解决。查

16、看差别通常你想要深入文件中了解你修改了什么。要达到这个目的,你可以选中这个文件,然后在tortoisesvn的右键菜单中选择比较。这个操作会启动一个外部的差别检查程序,由它来比较当前文件与上一次检出或更新后的原始的副本(基础版本)。即使你不是在一个工作副本中工作或者你有多个版本的文件,你都可以按以下方法来进行比较:选择你要比较的两个文件(比如,你可以使用ctrl 键加鼠标),然后从tortoisesvn的右键菜单中选择比较。最后一个被鼠标点中的文件(具有焦点的文件,比如有虚线框的文件具有焦点),将作为被比较文件的后一个。查看日志对于每次进行修改和提交,你应该有针对性地留下日志信息。这样,你就可

17、以在以后方便地看到你都做了什么,为什么这么做。当然这么做还是你拥有了开发过程的详细日志。选中你要查看的文件或者目录,使用tortoisesvn显示日志功能,即可显示该文件夹或者文件的所有修改的历史。版本日志对话框可以获取所有的日志信息,并将其显示出来。对话框的视图分成3个面板。l 最上方的面板显示了版本的列表。这其中包含了日期和时间,以及提交的用户和日志信息开头的部分内容。以蓝色显示的行表示某些内容被复制到该开发版本中(可能是从一个分支中复制而来)。l 中间的面板显示了被选中的版本的完整的日志信息。l 最下面的面板显示了被选中版本中都对哪里文件和文件夹进行了修改。当然,对话框的作用不止于此它提

18、供了右键菜单,通过它可以获取更多的项目历史信息。如图10.图10 查看日志对话框分支和标记版本控制系统的一个特性是能够把各种修改分离出来放在产品的一个分割线上。这条线被称为分支。分支经常被用来试验新的特性,而不会对开发有编译错误的干扰。当新的特性足够稳定之后,产品的分支就可以合并回主分支里(即主干)。版本控制系统的另一个特性是能够标记特殊的版本(例如某个发布版本),所以你可以在任何时候重新建立一个特定的构件和环境。这个过程被称作标记。svn没有复杂的命令来做这些控制,取而代之的是一种称为轻量级拷贝的方式来做分支和标记。其实际操作过程也非常简单,直接在版本库中进行了复制,不需要进行本地操作。在你

19、的开发版本上面右键单击,使用tortoisesvn分支/标记 命令,就会弹出分支/标记对话框。如图11。他自动把工作副本的url带入到对话框中,并且让你输入分支或者标记的url。填写好相关的信息之后,点击确定即可。同时,如果你选中了切换工作副本到分支/标记,则本地的开发副本就会从原来的位置,切换到新的分支上。切换分支也可以使用tortoisesvn切换 命令来完成。当然,你也可以重新使用检出工作副本的方式,检出一个分支或者标记。图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。其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论