2023年6月30日发(作者:)
TortoiseSVN常规功能1 TortoiseSVN 常规功能介绍TortoiseSVN 是最常⽤的Subversion 客户端软件,其所有功能都集成在系统右键中,通过系统右键菜单便可实现TortoiseSVN 的⽇常操作。⾸先,需从配置库(repository)签出(check out)原始码的⼀个版本到本地⼯作⽬录。然后,可以只编辑想要改变的⽂件,也可以新增⽂件或是删除不再需要的⽂件。当完成时,可以签⼊(Commit)到库中如果在修改时,其它⼈已经改变了同⼀个⽂件,那么签⼊(commit)会失败。那么必须从仓库(repository)更新(Update)所有的⽂件。这将其它开发⼈员的改变⾃动合并到您的⽂件副本⾥。但如果两个⼈改变了同⼀⾏程序代码或者修改的是⼆进制⽂件(如word、excel 等),这将发⽣“冲突(Conflict)”,必须⼿动解决冲突(见后⾯)。1.1 初始化导⼊/import对于Subversion 来讲。服务端进⾏配置后,项⽬版本库第⼀次运⾏,会由配置管理员进⾏第⼀次导⼊操作。来到我们需要导⼊的项⽬根⽬录,依次导⼊D:branchs;tags;trunk,⽬录下有若⼲个⽂件。1)右键-> TortoiseSVN->导⼊/import2)版本库URL输⼊192.168.75.135/www3)系统提⽰输⼊⽤户名跟密码点击OK后就可以将数据导⼊到我们刚刚定义的数据库中了。在进⾏初始化导⼊操作时,也可通过⿏标选中需要导⼊的⽂件夹直接拖拽“版本浏览/ Repo –Browser”右侧。1.2 SVN 检出/SVN check out◆该操作可以将SVN 服务端所保存的数据下载⾄个⼈⼯作平台。◆来到我们想要导⼊的项⽬根⽬录,在这个例⼦⾥是C:Documents and Settings桌⾯test,该⽬录为空:1)右键->SVN 检出/SVN check out2)版本库URL 输⼊svn://192.168.75.138/www(此处版本库URL 为subversion服务端IP 地址;检出⾄⽬录为C:Documents and 桌⾯test),点击确定。版本库URL /URLof repository:为配置库路径检出⾄⽬录(D)/checkout directory:为本地⼯作⽬录其它⼀般按缺省设置。通常情况下为最新版本,如需要其他版本,点击显⽰⽇志进⾏选择1.3 显⽰⽇志/Show log该功能主要显⽰版本库中过往的版本更新记录,在操作中可以显⽰更改的详情。1.4 版本浏览器/Repo –Browser版本库浏览⼯具,可以直观的显⽰版本库中的受控⽂件。如果想看⽂件,也可直接选中⽂件,右键,选择打开功能。注意:对于word、excel 等⽂件,应选择open with,然后选择相应的软件打开。1.5 检查修改/ Check for modifications检查版本库中已变更的版本,并显⽰与本地⼯作平台不同的⽂件1.6 版本分枝图/Revision graph主要作⽤是显⽰分⽀与合并,可以直观的了解版本变化的过程。1.7 更新⾄版本/Update to revision更新到其中⼀个已控制的版本1.8 SVN 还原/Revert当⽤户对⼯作平台的内容进⾏修改,且未提交⾄版本库时,可以选择此项,还原已修改的⽂件注:Updata和Revert的区别假设当前最新的版本是6,但是,最新的⼀次提交不是你想要的,也就是想把版本为6的修改⼲掉下⾯来看看如何分辨⽤revert和update来实现。1、使⽤revert保证本地copy为最新版本,即版本6.将本地copy revert到版本5.将本地copy commit。2、使⽤update将本地copy update到版本5.这个时候是没办法直接提交的,因为你的修改不是在最新的版本(6)上进⾏的。需要把版本5做个备份,然后check out版本6.通过⽂件⽐较⼯具将版本6的本地copy修改为与版本5的本地copy⼀致。然后将版本6的本地copy提交。可见,revert与update的本质区别是,revert是在本地copy原来版本的基础上进⾏的修改,若原来本地copy的版本为最新,可以直接commit;update只是将本地copy更新到⼀个指定的版本,若更新到的不是最新版本,不能进⾏commit。可见revert就是回退修改,但版本保持不变;update是将本地copy更新到⼀个指定的版本。1.9 清理/Clean up当进⾏了⼀次版本稳定后,可以点击此项,系统将清除多余的⽂件有些时候在客户端Checkout ⽂件后,SVN的系统图标也会不显⽰,可以执⾏⼀下“Clean up”,就会出现SVN 的系统图标。1.10 获取锁定/Get lock可以对版本库中的⽂件或⽂件夹进⾏锁定,则其他⽤户暂时⽆法对该⽂件或⽂件夹进⾏操作。⼀旦对⽂件执⾏该操作,如果要修改⽂件,必须先获取锁定,才能修改。1.11 解除锁定/Release lock与功能2.10 对应,释放锁定,其他⼈可以对⽂件进⾏编辑1.12 更新⼯作区/Update从服务器取得变动的部分到本地副本的过程称作“更新(Updating)”。更新可能作⽤于⽂件、⽬录上。若要更新,选择想要的⽂件或⽬录,按⿏标右键并选择SVN Update。对话框会蹦出并显⽰当它执⾏时更新的过程。由其他⼈所做的变动会被合并到您的⽂件之中,执⾏更新(update)对配置库不会被影响。如果在更新期间收到冲突提⽰,需⼿⼯解决冲突。1.13 增加/Add该功能可⽤于向版本库(repository)增加⽂件或⽂件夹。也可以通过⿏标选中⽂件或⽂件夹直接拖拽到“版本库浏览器/Repo –Browser”右侧。在新增操作被执⾏后,⽂件或⽂件⼩图标显⽰为“被改变了的(changed)”。这是因为新增被视为本地端的变动,且尚未被⽤到仓库(repository)上,直到签⼊(commit)它们1.14 撤销增加/Undo Add该功能与2.13 功能对应,当增加的⽂件、⽂件夹还没提交(Commit)到配置库中,刚增加的⽂件或⽂件夹想撤销,可执⾏该操作。2.15 提交/SVN Commit让本地的修改在仓库(repository)有效称作“签⼊(committing)”。在签⼊之前,应该做更新以确保没有冲突(conflicts)。要开始签⼊更改,选择想要签⼊(commit)的⽂件或⽂件夹。在所选的⽂件或⽂件夹上按⿏标右键,并选择SVN Commit。要实现本地⽂件或⽂件夹增加到版本库(repository)中,其流程:添加的⽂件时,别⼈看不到,版本库⾥也没有,最可能的原因是,只是执⾏了“Add”⽽没有“Commit”,这样只是在本地注明某个⽂件是预定要增加的,⽽没有实际添加到版本库中,要添加到版本库必须执⾏“Commit”。删除⽂件也是⼀样。当仓库与⽬录很多,使⽤TSVN 每次需要选择⽬录URL of repository 有很多地址时,可通过:右键->TortoiseSVN->Settings->Saved Data ,清除你想要的东西,如:URL、log、窗⼝⼤⼩、密码缓存等。1.16 重新定位/relocate(没有成功)通过切换,可将版本库地址切换到另⼀个地⽅,在使⽤分⽀时经常⽤到。另外在内外⽹切换时也可以通过此⽅式实现。为了内外⽹使⽤同⼀地址,避免切换,也可在C:WINDOWSsystem32driversetchosts ⽂件内增加⼀⾏:60.191.25.162 /doc/这样⽆论内外⽹都可统⼀使⽤⼀个地址了。2 TortoiseSVN 的进阶⽤法2.1 锁定⽂件锁分为两类:乐观锁、悲观锁2.1.1 乐观锁乐观锁设定①下⿏标右键并选择TortoiseSVN →Get lock。②当修改完成或⽆需锁定或其他⼈需要修改时,可以释放锁/release lock(即“锁定-编辑-解锁”模型)对于⼆进制⽂件,如doc、xls 等,可采⽤设置锁的⽅式。这对于习惯于VSS 模式的⼈员,也可⽤此⽅式。2.1.2 悲观锁特点:●对⽂件设置该属性后,checkout ⽂件都为只读,图标为灰⾊勾;●必须先获取锁定才能进⾏修改,且⼀旦⼀个⽤户获得锁,其他⼈就⽆法修改;●若⼯作副本已经out of date ⽆法获取锁定,必须更新到最新版本再获取锁定;●可以对⽂件或⽂件夹进⾏;缺点:●新增的⽂件没有该属性;悲观锁的设定:●对⽂件或⽂件夹添加svn:needs-lock●右键选中- >属性->Subversion 选项夹->properties->new->svn:needs-lock , 值可填*之后还要提交提交之后的效果注:当对⽂件夹锁定时,需勾选“递归应⽤该属性/Apply property recursively”;当对⽂件时,⽆需勾选“递归应⽤该属性/Applyproperty recursively”。修改被锁定⽂件:注意事项:●⽤户checkout 该⽂件最新的版本;修改⽂件步骤:①获取锁(假设我们对“使⽤⼿册.doc”进⾏了属性修改”)Check out “使⽤⼿册.doc”后,右击菜单->获取锁②修改并check in按⽇常修改流程执⾏;③释放锁/release lock修改完成后,commit “使⽤⼿册.doc”,系统会⾃动释放锁;如果该⽂件仍然需要保持锁定,可以在提交的时候选择“保持锁定选项”使⽤悲观锁可以有效解决本来计划对不太适合合并关键类⽂档(如⼆进制⽂件:doc,xls 等⽂件)出现忘记锁定的情况。3.2 创建分⽀/ Branch/tagTAG 使得系统⽬前的状态可以在未来被重新建构。SVN 使⽤整体版本号,每次提交都将使全局版本号加1,Tag 可为全局版本号取个容易记忆的名称。与CVS 不同,它执⾏⾮常快。在SVN 中,标记(Tags)和分⽀(Branch)的命令是在⼀起,说明两者有相似之处。未修改的分⽀即为“标记”,标记修改后就转化为分⽀。作基线时,可通过标记操作实现,将系统主⼲(trunk)复制到tags ⽬录下即可。如:1、选中trunk ⽬录2、右键-TortoiseSVN-tags/branches3、出现界⾯因此,项⽬⽬录结构中,顶层必须符合规范,设⽴trunk、tags 和branches ⽬录,否则将⽆法做基线。对于⽂件级的标签,虽然也可以通过tags 操作,但效果不⼤好,可在提交时写在备注说明中,以后可在⽇志显⽰中查到。有⼏点需要注意:默认的⽬标URL 将会是你当前⼯作副本所处的源URL。你必须给你分⽀/标记编辑⼀个路径。必须选择要复制的源位置。1)版本库中的最新版本新分⽀直接从仓库中的最新版本⾥复制出来2)版本库中指定具体的版本在仓库中直接复制建⽴⼀个新分⽀同时也可以选择⼀个旧版本。假如在你上周发布了项⽬时忘记了做标记,这⾮常有⽤。3)⼯作副本新的分⽀是⼀个完全等同于你的本地⼯作副本的⼀个副本2.3 合并分⽀/Merge选择右键菜单TortoiseSVN ->合并/Merge⾸先考虑这么⼀个需求,为了Bug 修改的⼯作,创建分⽀A,主⼲同时也在进⾏正常的开发⼯作,现在分⽀ A 的⼯作完成,需要将 A 上的修改合并到主⼲上,这应当是最经常使⽤的⼀种模式,下⾯分步骤说明合并过程。●第⼀步:将⼯作副本切换到主⼲上:这⼀步很重要,当前的⼯作副本的是要合并的⽬的地●第⼆步:在主⼲根⽬录内需要merge的⽂件上右键,如下图,选择最后⼀项
发布者:admin,转转请注明出处:http://www.yc00.com/web/1688076780a76765.html
评论列表(0条)