




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
配置管理工具SVN使用规范西安四海为家房车有限公司文档修订记录章节编号版本号修订内容简述修订日期作者1.0第一次建立2017-3-16王宁目录1.引言41.1Subversion的介绍41.2Subversion的特性41.3SVN链接模式51.4SVN操作流程52.SVN使用62.1SVN软件安装62.2SVN库介绍62.3基本操作72.3.1系统登录72.3.2设置功能(Settings)82.4系统规范使用122.4.1迁出配置库内容(SVN Checkout)122.4.2更新文件(SVN Update)142.4.3提交更新(SVN Commit)152.4.4增加文件(Add)172.4.5检查更新(Check for modifications)172.4.6删除文件(Delete)172.4.7撤销更改(Revert)182.4.8锁定和解锁(Get lock and Release lock)182.4.9重命名文件(Rename)182.4.10获取历史文件(Show log)182.4.11版本控制202.4.12与目录无关内容212.4.13文件夹目录名称规范212.4.14文件上传格式222.4.15文件、数据放置222.5日常使用问题222.5.1版本库无响应222.5.2邮件中的路径链接222.5.3系统库最上层打不开232.5.4提交失败(Commit fail)232.5.5SVN文件夹无法下载242.5.6特征图标的显示242.5.7冲突问题解决252.5.8提交时出现的磁盘空间不足问题262.5.9IE浏览器与版本库浏览器的差异26附录1:SVN特殊权限申请表27附录2:SVN功能解析281. 引言1.1 Subversion的介绍SVN是Subversion的缩写。Subversion管理随时改动的文件和目录,以二进制格式存储所有的文件,使用高效的比较二进制差异算法来计算版本之间的改动。同时,它是一个时间机器,随时记录文件和目录的每次改动,例如:文件的增加、删除、重新排列文件等。同时SVN允许你恢复以前旧版本的数据,或者检查数据变化的历史。SVN使用类似数据库事物的方式来处理用户提交入库的过程,整个改动要么成功的被提交,要么被中断并回滚。在数据提交完之前,其他人是看不到用户提交的修改文件,你看到的要么是改动之前的状态,要么是改动之后的状态。这样的行为被称为“原子提交”。原子提交很有用,因为它能保证所有相关人员看到的总是相同的东西。原子提交过程的其中一步就是包括把你的所有改动打包为一个“修订集”(有时被称为改动集),并且再给个改动标记的修订号(绿色勾变为红色叹号)。1.2 Subversion的特性1.2.1 版本化的目录 Subversion实现了一个可以跟踪目录树更改的“虚拟”版本化文件系统,文件和目录都是有版本的。1.2.2 真实的版本历史 通过Subversion你可以对文件或是目录进行增加、拷贝和改名操作,也可以新增一个具有干净历史的文件。可以毫不夸张的将每一个版本都可以作为一个记忆片段定点。1.2.3 原子提交版本库采用二进制差异形式提交修改的数据内容,一系列的改动,要么全部提交到版本库,要么一个也不提交,这样可以让用户构建一个需要提交修改的逻辑块,放置部分修改提交到版本库。1.2.4 一致的数据操作Subversion表示文件是建立在二进制文件区别算法基础上的,对于文本(可读)和二进制(不可读)文件具备一致的草所方式,两种类型的文件都压缩存放在版本库中。1.3 SVN链接模式其中本地工作副本与SVN系统链接的媒介是“.svn”隐藏文件夹,.svn隐藏文件夹中包含了系统链接、版本等信息,下图为本地工作副本与SVN系统链接后状态,绿色勾代表文件受系统控制(后面简称:受控)标志,红色叹号为受控文件改动标志。链接状态1.4 SVN操作流程WorkingCopyWorkingCopyRepositoryNetwork版本库网络本地工作副本检出、提交操作流程图上图中总体概括了SVN整个操作过程:首先用户从版本库通过网络“检出”到本地工作副本中,然后,在本地工作副本中进行增加、修改、删除文件后“提交”到版本库中,如果本地工作副本中版本较系统版本过时,用户使用“更新”功能与系统上版本保持一致。2. SVN使用 2.1 SVN软件安装下载地址:/downloads.zh.html;安装完不要忘记重启电脑安装完成后,按下鼠标右键,会看到如下界面:如果显示是这样的,就说明安装成功了。2.2 SVN库介绍 SVN库SVN库,分别是:开发库和运营库。其中开发库和运营库为同一帐号密码。各库的登录路径如下:n 开发库:研发部工作平台。登录路径:svn:/90/项目;n 运营库(project):运营部工作平台。登录路径:svn:/90/运营项目2.2.2 帐号注册、权限申请1. 用户帐号注册:新进员工没有SVN帐号,通过邮件联系SVN管理员,邮件正文注明申请SVN普通帐号,管理员处理完帐号注册事宜后,会邮件回复。 注:普通帐号,只对公共区域目录有读取权限。2. 权限的申请:凡是涉及到研发部层面的权限申请或者是涉及到非本部门的权限申请,一律填写如附件特殊权限申请单,在各方领导审核审批后,交由SVN管理员处理,在管理员处理完毕后回复用户。2.3 基本操作2.3.1 系统登录点击鼠标右键出现功能选项,选择“TortoiseSVN”中的“版本库浏览器”,这时系统弹出URL界面,用户在URL中输入需要进入的库路径,弹出登录认证框,用户输入用户名和密码进入系统主界面。 图 (a) 系统登录图 (b) 认证界面图 (c) public库系统界面图(a)和图(b)是系统登录操作界面,图(c)是系统的主界面,三副图中整体描述了SVN系统的登录情况。注:图(b)中“Save authentication”是保存认证选项,用户根据需要对自己的用户名和密码进行保存,以便在下次操作时不需要再次输入用户名和密码了。2.3.2 设置功能(Settings)在上节类容中主要讲述了系统的登录方式和认证保存的方法,接下来继续讲述系统“设置(Setting)”功能的使用。在设置中,用户可以根据需要选择系统的语言显示、清除已保存的数据、显示特征标志等等。(1)系统语言显示选择系统语言中-英文转换系统安装后全部默认为英文模式,这时需要用户手动切换到中文模式。上图中描述了中英文切换的过程,在选择“设置(Setting)”功能后弹出的对话框自动显示语言栏(Language),用户选择“中文(简体)”后确认即可。(2)忽略上传文件SVN系统有一个似过滤器的功能,在本地工作副本中用户可以根据需要过滤一些不需要上传到服务器的文件,这个功能就是“全局忽略样式”。全局忽略样式忽略样式对提交文件扩展名进行选择性忽略,忽略格式通常以*.X形式被系统识别,例如:用户不需要将编译产生的.o和.err文件提交到SVN上,这时用户在全局忽略样式中输入*.o *.err如上,各条目之间以空格分隔。注意:当用户在本地工作副本中对新添加文件采用了系统添加功能操作,忽略样式功能对本地副本中的文件将不起作用,如下表蓝色加号表示文件已添加;另外还有一种情况,如果已经将想忽略的文件提交到了SVN系统上,是无法进行忽略的。添加文件样式(3)保存清除在对系统保存认证后相应需要对认证进行清除,清除功能仍然在设置模块中,界面如下图。在保存清除中共可以对本地四种已保存数据进行清除,分别有URL历史记录、日志信息、窗口大小、认证数据,在对这些数据完全清理后系统自动恢复到“零”状态。因此,用户在离机后也别忘记将保存认证数据清除掉,以保障资料的安全性。认证清除密码清除(4)特征标志选择不少用户在使用SVN“检出”功能后,本地工作副本没有出现特征符号绿色勾或其他特征符号,这是由于系统无法识别默认的状态缓存,需要人工手推选择状态缓存方式,改变状态缓存方法如下图,在设置中选择“外观与样式”的“图标叠加”模块,再在“状态缓存”中选择“Windows外壳”。特征显示设置中其他不常用的功能不再进行一一介绍,用户可以根据日常操作实践来理解。2.4 系统规范使用项目开发要求:1、工作目录要及时更新,不要和SVN服务器有太大的差别2、提交代码时,如果出现冲突,必须仔细分析解决,不可以强行提交3、提交代码之前先在本地进行测试,确保项目能编译通过,且能够正常运行,不可盲目提交4、必须保证SVN上的版本是正确的,项目有错误时,不要进行提交2.4.1 迁出配置库内容(SVN Checkout)1. 新建或进入目录下(比如E盘),右键 SVN Checkout2. URL of repository 填写仓库路径即可3. Revision处,“HEAD revision”是指最新版,也可以指定Revision为任意一个版本。4. 点击“OK”按钮后,在弹出的对话框中输入用户名和密码,验证成功后,项目文件开始从远程服务器下载到本地工作目录中:5.点击“确定”按钮后,即可获取完成,出现如下下载界面:6.下载完成后,服务器上所有内容会出现在本地文件夹下2.4.2 更新文件(SVN Update)1. 当从配置库迁出相应目录后,他人对服务器上此目录内容进行了修改,则需要再次获取改动内容到本地目录的过程称为更新。更新可以针对一个文件、几个选中的文件或者整个文件目录。选中要被更新的文件,右键选择“SVN Update”项,如下:2. 2)点击“SVN Update”后会弹出窗口显示更新的进度,如下:若上述框中的有文件出现亮红,说明来自配置库的内容与你本地修改内容合并时出现了冲突2.4.3 提交更新(SVN Commit)1.本地文件修改后,若是需要更新到服务器上,则需要提交(Commit)最新的更新。Commit的作用是将本地最新修改的文件同步到SVN服务端,供其他人来参考或者使用,当然使用之前,要先Update一下,来确保是最新的,在修改文件上击右键,出现菜单,选择“SVN Commit”,如下:2.然后填写关于本次更新的日志(log message),这是必填项,否则commit会失败,如下:提交代码需注意如下规范:l 先更新,再提交SVN更新的原则是要随时更新,随时提交。当完成了一个小功能,能够通过编译并且自己测试之后,谨慎地提交。如果在修改的期间别人也更改了svn的对应文件,那么commit就可能会失败。如果别人和自 己更改的是同一个文件,那么update时会自动进行合并,如果修改的是同一行,那么合并时会产生冲突,这种情况就需要同之前的开发人员联系,两个人一起协商解决冲突,解决冲突之后,需要两人一起测试保证解决冲突之后,程序不会影响其他功能。在更新时注意所更新文件的列表,如果提交过程中产生了更新,则也是需要重新编译并且完成自己的一些必要测试,再进行提交。这样既能了解别人修改了哪些文件,同时也能避免SVN合并错误导致代码有错。l 多提交每次提交的间歇尽可能地短,以几个小时的开发工作为宜。例如在更改UI界面的时候,可以每完成一个UI界面的修改或者设计,就提交一次。在开发功能模块的时候,可以每完成一个小细节功能的测试,就提交一次,在修改bug的时候,每修改掉一个bug并且确认修改了这个bug,也就提交一次。我们提倡多提交,也就能多为代码添加上保险。l 不要提交不能通过编译的代码代码在提交之前,首先要确认自己能够在本地编译。如果在代码中使用了第三方类库,要考虑到项目组成员中有些成员可能没有安装相应的第三方类库。项目经理在准备项目工作区域的时候,需要考虑到这样的情况,确保开发小组成员在签出代码之后能够在统一的环境中进行编译。l 每次提交必须书写明晰的标注在一个项目组中使用SVN,如果提交空的标注或者不确切的标注将会让项目组中其他的成员感到很无奈,项目经理无法很清晰的掌握工作进度,无法清晰的把握此次提交的概要信息。在发现错误后也无法准确的定位引起错误的文件。所以,在提交工作时,要填写明晰的标注,能够概要的描述所提交文件的信息,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。l 提交时注意不要提交本地自动生成的文件例如eclipse中的.classpath文件,Windows生成的缩略图Thumbs.db,项目编译生成的临时文件.obj, .class等等。如果项目中没有进行这方面的配置来强行禁止提交这样的文件,请自觉不要提交这样的文件。提交了这样的文件后,别人在更新后就可能与本地的环境冲突从而影响大家的工作。l 不要提交自己不明白的代码代码在提交入SVN之后,你的代码将被项目成员所分享。如果提交了你不明白的代码,你看不懂,别人也看不懂,如果在以后出现了问题将会成为项目质量的隐患。因此在引入任何第三方代码之前,确保你对这个代码有一个很清晰的了解。l 慎用锁定功能在项目中要慎用锁定的功能,在你锁定了一个文件之后别人就无法继续修改提交该文件,虽然可以减少冲突的发生率,但是可能会影响项目组中其他人员的工作。平时只有在编辑那些无法合并的文件(例如图片文件,flash文件等)时,才适当的采用锁定操作。2.4.4 增加文件(Add)1. 将需要增加的新文件放入到本地迁出的文件夹TestManger目录的相应位置中,鼠标选中新文件右键选择“Tortoise SVN”的“Add”项,如下图所示:2. 鼠标选中TestManger文件夹右键选择“SVN Commit”,将新文件上传配置库对应文件夹中(若只上传单个文件,只需点中单个文件上传即可)。2.4.5 检查更新(Check for modifications)1. 此功能可以显示本地对文件所做的修改有哪些还没有提交。不光能看到对文件的修改变化,还包括增加文件或目录,删除文件或目录,移动文件或目录等。当他人提交了哪些文件的改动,也可通过此项来进行查询。2.4.6 删除文件(Delete)1. 选中要被删除的文件,右键选择“Tortoise SVN”的“Delete”项,如下:1. 删除文件后,鼠标选中TestManger文件夹右键选择“SVN Commit”项进行提交,提交方式同增加文件的提交方式,提交后则将新文件从配置库中删除。2.4.7 撤销更改(Revert)在修改了某些文件后(文件未上传到配置库),需要返回到修改前的状态,则选中文件夹右键选择“Tortoise SVN”的“Revert”项进行撤销,本地硬盘上的文件将恢复到修改前的内容,修改的内容将被删除。2.4.8 锁定和解锁(Get lock and Release lock)当项目需要时可以在本地硬盘中将迁出的内容进行锁定,选中要被锁定的文件右键选择“Tortoise SVN”的“Get lock”项进行锁定(锁定后他人将无法修改此文件),系统弹出锁定信息框。 当文本文件锁定后,需要通过解锁他人才能继续对文件进行修改。选中被锁定的文件右键选择“Tortoise SVN”的“Release lock”项进行解锁。2.4.9 重命名文件(Rename)修改文件名,选中需要重命名的文件或文件夹,然后右键“Tortoise SVN”的“Rename”,在弹出的对话框中输入新名称,点击“OK”按钮,并将修改文件名后的文件或文件夹“SVN Commit”提交到SVN服务器上。2.4.10 获取历史文件(Show log)Show log顾名思义是显示日志的作用,主要是显示该文件或者该目录被执行的操作,是被谁修改了,以及修改的时间和日期。鼠标选中文件夹右键选择“Tortoise SVN”的“Show log”项,系统弹出此路径下的所有文件版本信息,如下:2.4.11 版本控制文件的追溯性主要表现在文件的版本提交控制情况,一个文件或数据的成型可能经历上百个版本修改。因此,只要使用好版本控制,不仅节省脑力劳动,而且提高了工作效率,当日文件修改后提交过程中日志备注是必不可少的。图2-14 版本控制管理2.4.12 与目录无关内容SVN系统平台是事业部各人员日常工作平台,提交的文件和数据均是工作相关内容,因此不允许用户将私人照片、电影等不相关内容上传。另外在project库中研发工程师需按照PQE项目质量拟定的基线目录提交相关内容,下图中列举了M6车型中上传F3项目的不规范现在。使用不规范目录2.4.13 文件夹目录名称规范用户在提交日常文件成功后,系统会自动精确到秒的记录用户所有操作,因此,用户在日志备注中注明提交原因和较详细的描述修改的地方,不需要在文件夹名后添加文件修改日期,下图中形象的表现了用户在文件夹后加日期不规范现象。文件夹带日期不规范现象2.4.14 文件上传格式日常更新的文件、数据不能转换成PDF、压缩包等格式提交;文件不用压缩,不能设置密码。2.4.15 文件、数据放置 文件、数据不允许重复放置。2.5 日常使用问题2.5.1 版本库无响应在版本库浏览器中输入SVN路径后系统处于无响应状态。解决方法:检查SVN路径是否输入正确,如果正确,请用户确认路径和符号是否在英文模式下输入的,如果不是请将其修改为英文模式。导致原因:由于SVN现阶段只支持全英文状态路径,因此用户在输入路径时要注意。2.5.2 邮件中的路径链接直接点击邮件中的链接地址为何打不开文件?导致原因:输入路径太长,OE(Outlook Express)中只默认到一定字节数,导致点击链接文件无法达到底层目录或直接发生链接错误。解决方法:在OE中选择“插入”“超级链接”“URL”,将全部路径粘贴进URL中,接收方在点击链接后能顺利打开文件。如下图:outlook路径输入模式2.5.3 系统库最上层打不开导致原因: 网络不通; 使用IE代理; 路径输入错误.问题解析:用户要清楚一点,所有系统帐号,最上层是一定能打开的,除非你没有SVN帐号。一旦发现上述情况,用户首先是检查路径的正确性。如果路径正确,请确认是否存是由以下两种因素引起的。(1)首先,请检查网络是否连通;(2)其次,检查是否使用了网络代理,由于Apache关系,用户在使用代理后是无法登录SVN的。2.5.4 提交失败(Commit fail)(1) 文件提交不上文件无法提交导致原因:绿框内记录了问题点存在的直接原因,当用户提交文件时,系统提示路径不存在,该路径指代的是系统上与本地链接的路径已经不存在。此时,用户首先确认是否对服务器上相应目录名称做过改动,或者是将该目录移植、删除。(2) 没有权限看到报错信息中包含以上信息(Commit fail)时,请联系SVN管理员处理权限配置。2.5.5 SVN文件夹无法下载如果一个文件夹内容的无法下载,导致原因有两种:(1)文件名末尾有空格解决方法:将文件名称的空格去除,再执行下载操作。(2)本地目录中已下载相同路径(如以下图片)在本机中已存在“.svn”路径的目录下继续下载第二个目录是不可执行的操作,如图2-19。解决方法:如果真需要继续在本目录中下载其他文件夹,用户在该目录下新建一个文件夹后再执行检出操作,以新建目录为本地副本。目录无法下载2.5.6 特征图标的显示明明是检出了,受控文件(夹)为何没有绿色勾?导致原因:由于个别电脑无法识别SVN默认选择的Default,因此电脑在检出后没有绿色勾特征。解决方法:在设置中的Icon Overlays 中选择Status cache 的(外壳)Shell项即可,如果仍然没有显示,用户重启电脑。标志显示类型选择2.5.7 冲突问题解决导致原因:由于用户操作不当,或由于版本过期引起。冲突现象分为轻微型冲突和死亡型冲突,由于版本过期使用更新操作时引起的可通过SVN功能解决的冲突定义为轻微型冲突,由于操作不当无法用SVN功能解决的冲突较死亡型冲突。冲突产生轻微型冲突解决方法:在发生轻微型冲突现象后,用户使用功能已解决的(Resolved)来处理该事件。冲突解决死亡型冲突解决方法:在发生死亡型冲突后,已解决的功能无法解决错误问题,用户只能舍弃现有本地工作副本,重新从服务器上下载版本库,然后通过覆盖新下载数据方式继续进行下一步操作。注:在覆盖前一定要将舍弃的本地工作副本中.svn隐藏文件夹删除掉。2.5.8 提交时出现的磁盘空间不足问题部分用户在提交时数据到SVN上时,系统提示磁盘空间不足信息。导致原因:由于存放工作副本的磁盘剩余空间较小,达不到提交所需的资源释放。问题解决:用户检查磁盘空间量,并释放冗余空间。2.5.9 IE浏览器与版本库浏览器的差异相同点:两者都能下载。两者差异:使用版本库浏览器登录可以“检出”“提交”,并且包含所有的SVN系统功能;使用 IE浏览器登录可以查阅及下载,不包括SVN系统涵盖的系统功能。附录1:SVN特殊权限申请表SVN特殊权限申请表表码:01 编号:申请人王敏工 号576708部 门开发部职 务开发工程师SVN申请路径svn:/90/项目/二期项目-自驾营地申请权限 读取权限 (R) 备注: 写入权限 (RW) 备注:申请理由学习车型项目管理访问有效期 无限期有限期: 2017年03月27日 2018年03月22日申请部门审核意见: 不同意
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品热分析技术
- 下肢压力治疗技术
- 人力资源真人汇报
- 无骨缝纫技术分享
- 药品采购平台标准化流程
- 企业安全汇报总结
- 企业消防事故案例讲解
- 尚品宅配全屋设计解决方案
- 头孢药物过敏应急演练
- 鲜血的统治:权力斗争与暴力镇压的历史透视
- 江西省上饶市2024-2025学年七年级下学期期末语文试题
- 2025年小学生环保科普知识竞赛题库及答案
- 2025至2030年中国乙醇行业市场全景调研及发展趋向研判报告
- 设备易损配件管理制度
- 叉车维修方案(3篇)
- 颅内感染诊疗指南
- 儿童腺病毒肺炎
- 2025至2030中国UV打印机行业市场现状分析及竞争格局与投资发展报告
- 2025至2030中国氢化可的松口服片行业项目调研及市场前景预测评估报告
- 消防器材介绍课件
- 可研委托合同(合同范本)5篇
评论
0/150
提交评论