SVN工具介绍(开发人员)课件_第1页
SVN工具介绍(开发人员)课件_第2页
SVN工具介绍(开发人员)课件_第3页
SVN工具介绍(开发人员)课件_第4页
SVN工具介绍(开发人员)课件_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

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

文档简介

SVN工具介绍 研发部SVN工具介绍 研发部1TortoiseSVN的安装TortoiseSVN最常用的四个命令TortoiseSVN实用功能TortoiseSVN其他功能SVN开发模式SVN的特色SVN案例分析主要内容TortoiseSVN的安装主要内容2

TortoiseSVN安装版本的选择TortoiseSVN安装

目前公司常用的三个版本:V1.4.8、V1.5.3、V1.6.6。三个版本大致功能类似,没有很大的变化。通过一段时间使用发现V1.4.8相比V1.5.3更为稳定,而且目录过深时,V1.5.3不能检出(该版本的bug),而V1.4.8可以。但V1.5.3作为V1.4.8的升级版本操作更方便,功能更完善。最新版本V1.6.6,修改了V1.5.3深目录不能检出的bug,操作也更为方便,功能更加全面,目前正准备推广使用。TortoiseSVN安装3TortoiseSVN安装TortoiseSVN安装

乌龟安装时无需特殊配置,直接安装即可。安装成功后,在桌面上右键,即可看到下图:SVN特色建议:升级TortoiseSVN时,先卸载先前的安装版本,再重新安装新版本!TortoiseSVN安装TortoiseSVN安装SVN4TortoiseSVN安装中文版安装

若需安装中文版,则需再安装中文语言包,并在setting中将语言设置为中文,如下图所示:TortoiseSVN安装中文版安装5TortoiseSVN最常用的四个命令最常用的四个命令1.Repo-browser(浏览版本库)

通过“浏览版本库”可以直接查看服务器上指定目录下的所有目录结构(需要有相关权限),包括特定版本的作者,提交时间等,并且在浏览版本库里面链接了很多SVN常用的功能。如显示日志,检出,导出,检入文件/文件夹,改名,删除文件,分支建立等。2.Checkout(检出)

从SVN服务器上得到数据,即建立本地副本,并且修改后可以commit到SVN服务器上。相对于CC来说,SVN的checkout可以说完成了建立本地视图和checkout两个动作。checkout命令可以在本地计算机上,浏览版本库,显示日志等多个地方找到。3.Update(更新)

更新本地副本,得到SVN服务器上最新的数据。一般checkout建立本地副本后,都在该本地副本上修改提交,若想再次得到服务器上的最新版本,即需用Update。在修改之前,一般我们都需要执行Update动作,以保证在最新版本上做修改,以减少提交时冲突。特别是用锁定的模式开发,修改前必须先更新并获得锁后才能修改(后面会具体描述)提交。4.Commit(提交)

提交修改到SVN服务器上。所有需提交到SVN服务器上本地副本的修改都需要用Commit命令完成。TortoiseSVN最常用的四个命令最常用的四个命令6TortoiseSVN最常用的四个命令Repo-browser(浏览版本库)TortoiseSVN最常用的四个命令Repo-browse7TortoiseSVN最常用的四个命令按右键,链接的功能列表版本信息选中“保存认证”,下次登入无需再认证TortoiseSVN最常用的四个命令按右键,链接的功能列表8TortoiseSVN最常用的四个命令Update(更新)

选中需要更新的本地副本,按右键,选择SVNUpdate即可得到服务器上最新的版本。若本地上有修改,更新时经常会出现冲突(黄色感叹号),此时表明您本地副本的修改和服务器上的最新版本有冲突,需要您解决冲突后才能提交你的修改(解决冲突方法后面具体叙述)。故为了减少冲突的产生,我们很有必要在修改前进行更新,等到服务器上最新的版本。updateTortoiseSVN最常用的四个命令Update(更新)u9TortoiseSVN最常用的四个命令Checkout(检出)

本地计算机上:1.在本地计算机上按右键选择SVNCheckout命令2.填入/选择需检出URL,选择目标检出目录,根据需要选择检出深度和版本,OK即可。

服务器检出地址检出深度选择检出后本地副本显示为绿色的勾勾!版本选择TortoiseSVN最常用的四个命令Checkout(检出10TortoiseSVN最常用的四个命令Checkout(检出)浏览版本库中:

1.进入浏览版本库,选中需检出的目录文件夹,选择checkout。

2.出现检出对话框,选择检出目标位置和检出深度等OK即可。TortoiseSVN最常用的四个命令Checkout(检出11TortoiseSVN最常用的四个命令Checkout(检出)显示日志里:

选择showlog命令,进入显示日志界面,选择需检出的版本,按右键选checkout,检出对应版本的文件资料。

TortoiseSVN最常用的四个命令Checkout(检出12TortoiseSVN最常用的四个命令Commit(提交)1.选中已修改的本地副本(红色感叹号),按右键,选择SVNCommit命令2.在对话框中填写日志(描述修改的内容,注意点等),选择需要提交的文件,点OK即可。提交后红色的感叹号变成了绿色的勾勾!待提交文件列表,可以选择是否提交TortoiseSVN最常用的四个命令Commit(提交)提13TortoiseSVN实用功能实用功能之一-还原1.本地副本还原(Revert)

放弃本地副本的修改,将其还原到本地修改前的版本(最后提交或者更新的版本)2.还原至某一历史版本(Reverttothisrevision)

将本地副本复原到选中的某一个历史版本,若需将该复原版本提交到服务器上,则还需Commit!3.还原某一历史版本的修改(Revertchangesfromthisrevision)

放弃某一历史版本的修改。该动作只还原某一个特定版本的修改,并不还原该版本之前所有版本的修改,若需将该复原版本提交到服务器上,则还需Commit!TortoiseSVN实用功能实用功能之一-还原14TortoiseSVN实用功能本地副本还原(Revert)

选择需还原的本地副本,按右键,选“Revert”,在弹出的对话框中选择需还原的文件,OK即可。可以选择是否还原?还原后,红色感叹号消失,变成绿色勾勾!TortoiseSVN实用功能本地副本还原(Revert)可15TortoiseSVN实用功能还原至某一历史版本(Reverttothisrevision)

1.选中本地副本,进入显示日志对话框。选择还原版本,按右键,选择“Reverttothisrevision”,即出现如下还原对话框,OK即可。2.还原后,有修改则本地副本即变为红色感叹号,若需提交到服务器上,还需commit!TortoiseSVN实用功能还原至某一历史版本(Rever16TortoiseSVN实用功能还原某一历史版本的修改(Revertchangesfromthisrevision)操作同“Reverttothisrevision”。TortoiseSVN实用功能还原某一历史版本的修改17

实用功能之二-查询功能1.显示日志(showlog)

日志查询功能主要作用是:查找历史版本信息,用于追溯。日志信息里包含了所有历史版本的5个W,who.when.where.what.why!同时“显示日志”命令充当了其他多个重要功能的接口,如“比较版本差异”,“更新至此版本”,“复原至此版本”等。“显示日志”命令位于多个对话框中,可以说无孔不入,即表明其实用性和重要性了!2.更新版本(Updatetorevision/updateitemtorevision)

更新版本可以使本地副本更新到任意一个历史版本,方便用户详细查看某一版本的具体内容。

TortoiseSVN实用功能实用功能之二-查询功能TortoiseSVN实用功能18TortoiseSVN实用功能显示日志(showlog)在任意有“showlog”命令的地方,点击“showlog”,即可显示如下图。其他功能的接口TortoiseSVN实用功能显示日志(showlog)其19TortoiseSVN实用功能更新版本(Updatetorevision)

选择Updatetorevision命令,填入版本号/通过showlog选择版本,OK即可,此时本地副本显示的即为你选择的版本内容。更新深度更新后本地副本仅作为显示某一版本内容,不能复原为该版本,与复原命令不同!TortoiseSVN实用功能更新版本(Updateto20TortoiseSVN实用功能更新版本(updateitemtorevision)TortoiseSVN实用功能更新版本(updateite21TortoiseSVN实用功能实用功能之三-比较功能

SVN提供了多个实现比较功能的命令,来满足不同事物的差异比较。1.检查更新(checkformodification)

获得本地副本所做的修改内容。2.与工作副本比较获得任何一个历史版本与本地副本的差异。3.比较版本差异(追溯版本,以标准差异文件形式显示修改)获得任何两个历史版本之间的差异。其中:“追溯版本”不仅显示两个版本的差异,同时显示修改作者,时间等信息。“以标准差异文件形式显示修改”:以特定的形式显示差异,显示形式与比较版本差异和追溯版本命令不同。TortoiseSVN实用功能实用功能之三-比较功能22TortoiseSVN实用功能检查更新(checkformodification)

1.选择需检查的本地副本,按右键,选择“检查更新”,即显示修改文件列表。2.若需查看可编辑文件具体的修改内容,选中该文件按右键,选择“与基础版本比较”,确定,即可得到具体的修改内容。得到本地副本修改的文件列表与基础版本比较,得到文件内修改的具体内容TortoiseSVN实用功能检查更新(checkfor23TortoiseSVN实用功能与工作副本比较(Comparewithworkingcopy)

1.选中本地副本,进入显示日志页面,选择任一版本,按右键,选择“与工作副本比较”,确定即显差异文件列表。2.双击差异文件列表中某一个具体的可编辑文件,即可显示该文件内容的具体差异。TortoiseSVN实用功能与工作副本比较(Compare24TortoiseSVN实用功能差异文件列表服务器上版本工作副本比较后的结果TortoiseSVN实用功能差异文件列表服务器上版本工作副25TortoiseSVN实用功能比较版本差异(comparerevision)

1.使用CTRL+左键选择任意两版本,按右键,选择“比较版本差异”,出现差异文件列表。2.选择某一可编辑文件,按右键,选择“比较版本差异”,即可得到文件的具体差异。若选择“追溯版本”,则比“比较版本差异”多了时间,作者等信息的显示。差异文件列表TortoiseSVN实用功能比较版本差异(compare26TortoiseSVN实用功能比较版本差异TortoiseSVN实用功能比较版本差异27TortoiseSVN实用功能追溯版本以标准差异文件形式显示修改,类似,不累述!与“比较版本差异”比较,多了时间和作者等信息的显示TortoiseSVN实用功能追溯版本以标准差异文件形式显28TortoiseSVN实用功能实用功能之四-

版本分支图(Revisiongraph)

版本分支图主要显示以下内容:

1.建立分支和标签的时间和版本2.文件夹名称的修改3.最新的版本4.本地副本的版本另外鼠标滑过任意版本框,都会显示该版本的日期、作者和备注信息等;选中版本框按右键可以使用另外很多的功能,如显示日志,合并版本等等;还可通过“CTRL+左键”选中两个版本进行比较等。TortoiseSVN实用功能实用功能之四-版本分支图(29TortoiseSVN实用功能版本分支图(Revisiongraph)

进入版本分支图有多种方法,如本地副本、浏览版本库等。直接选择“Revisiongraph“即可。版本分支图中版本框不同的形状,颜色表示不同的分类。分支主干最新版本历史版本日志TortoiseSVN实用功能版本分支图(Revision30SVN其他常用功能其他常用功能1.增加(Add)/删除(Delete)/改名(Rename)

增加:增加未受版本控制的文件到版本控制中。

删除:删除服务器上的文件。

改名:重新命名文件。

Add/Delete/Rename都可以在本地副本上和浏览版本库中实现注意:Add/Delete/Rename在本地副本上使用,都仅仅是修改,没有提交的动作,故一般Add/Delete/Rename和Commit一起使用,当Add/Delete/Rename后,若需要在提交到配置库上,则还需Commit。2.增加到忽略列表(Deleteandaddtoignorelist)

很多时候我们不想把部分文件提交到配置库中,但是本地副本想保留,这时可以将文件增加到忽略列表,这样提交时这些文件不提交到配置库。如可以将编译生成的release文件夹加入到忽略列表里面。SVN其他常用功能其他常用功能31SVN其他常用功能3.导出(Exprot)

有时只想需得到配置库的某些资料,但不想受SVN版本控制,此时可以用Exprot。Exprot与checkout一样都是从服务器中得到数据资料,但是Exprot的数据资料不受版本的控制,无.SVN文件夹。4.另存为(Saveas)

对于单个的文件,从服务器上获取不受版本控制的文件可以通过浏览版本库里面的Saveas命令实现。5.移动文件/文件夹

有时候我们需要将一个文件/文件夹移动到另一个文件夹下,SVN在本地副本上的文件和文件夹的移动也有特有的命令。6.重新定位(ReLocate)

当URL修改(服务器搬迁IP地址修改等),但本地副本还需继续使用,则需重新定位URL,将先前checkout时的URL重新定位为最新的URL。SVN其他常用功能3.导出(Exprot)32SVN其他常用功能增加(Add)

本地副本上增加:

1.选中需加入版本控制的文件,右键,选择“TortoiseSVNAdd”。2.“Add”后,按右键选择“Commit”命令

浏览版本库中增加(包含提交):

AddFiles:增加文件,在对应目录按右键AddFiles,填入日志信息,OK即可

Addfolder:增加文件夹,在对应目录按右键Addfolder,填入日志信息,OK即可SVN其他常用功能增加(Add)浏览版本库中33SVN其他常用功能删除(Delete)

本地副本上删除:

1.选中需删除的文件,右键,选择“TortoiseSVNDelete”。2.“Delete”后,在上一层目录按右键选择“Commit”命令。

浏览版本库里删除(包含提交):选中删除的文件,右键“Delete”,在弹出的对话框中输入日志即可。SVN其他常用功能删除(Delete)浏览版本34SVN其他常用功能改名(Rename)本地副本上改名:

1.选中需改名的文件/文件夹,按右键,选择“TortoiseSVNRename”2.“Rename”后,在上一层目录按右键选择“Commit”命令

浏览版本中改名(包含提交):

选中需改名的文件/文件夹,按右键,输入新的名字,OK,在弹出的对话框中输入日志信息即可。SVN其他常用功能改名(Rename)浏览版本中改名(35SVN其他常用功能增加到忽略列表(Deleteandaddtoignorelist)

增加到忽略列表后,文件无特殊的标志,并且提交修改时该文件不提交。区别于未受版本控制的文件:未受版本控制的文件显示为“?”,并且在上层目录提交时可以提交到服务器。SVN其他常用功能增加到忽略列表(Deleteandad36SVN其他常用功能导出(Exprot)

导出命令可以在多个位置使用,如本地副本,浏览版本库,显示日志等。操作方法与checkout一致。导出的文件无特殊的标志,即windows文件。

浏览版本库里面使用SVN其他常用功能导出(Exprot)浏览版本库里面使用37SVN其他常用功能移动文件/文件夹

本地副本上移动:

1.选中要移动的文件按住鼠标右键不放,拖动到目标文件夹,放开鼠标,出现如下图选项,选择需要的命令即可2.在上一层目录上按右键,选择commit,提交到服务器上。

浏览版本中移动(包含提交):选中需移动的文件按左键不放,将文件拖动到目标目录文件夹,在弹出的提交对话框中输入日志,OK即可。SVN其他常用功能移动文件/文件夹浏览版本中移动38SVN其他常用功能重新定位(ReLocate)

选中本地副本,按右键选择ReLocate命令,将ToURL里面修改为最新的URL即可。SVN其他常用功能重新定位(ReLocate)39SVN开发模式1.分支与合并

支持并行开发,支持分支与主干之间的合并,即可将主干(分支)上修改完的bug合并到分支(主干)上,但这很可能引起冲突,故要求操作者有解决冲突的能力。建议:尽量少建分支,晚建分支。多建一个分支即表明多一点成本。(不可编辑的文件不可合并)2.锁定与解锁

支持并行开发,但锁定可能导致管理问题,不必要的线性开发,也可能导致错误的安全状态。该模式适用于不可编辑文件的并行开发。注意:使用该模式时,修改者在修改前必须先获得锁,这样才能保证是在最新的文件上做修改,避免冲突的产生。SVN开发模式1.分支与合并40SVN开发模式分支和合并(branches/Merge)分支用途

1.软件开发时以主干为基础,实现并行开发,不断将分支上的修改合并到主干上。2.同一软件的发布版本BUG修改和升版的并行开发等。创建分支

命令1:Branches/Tags(工作副本使用)命令2:copyto(浏览版本库使用)命令3:Createbranche/tagformthisrevision(showlog使用)SVN开发模式分支和合并(branches/Merge)41SVN开发模式

创建分支后,在未建立分支前checkout的本地副本上查看分支,还需先Update!分支名建立分支版本选择日志填写以命令1(Branches/Tags)方式举例说明:

在本地副本上选择需建立分支的目录,按右键,选择Branches/Tags,在tourl中填入分支建立的位置和名称,选择建立分支的版本,填写日志,提交即可。SVN开发模式创建分支后,在未建立分支前che42SVN开发模式合并(Merge)

首先选择合并的种类

合并同一分支的不同版本之间差异合并一个分支的所有差异合并不同分支之间差异SVN开发模式合并(Merge)合并同一分支的不同版本之间差43SVN开发模式合并举例;选择第二种合并方式,显示如下。选择需合并的分支和合并深度,Merge,最后还需将Merge的修改Commit。注意:Merge过程中很容易出现冲突,出现冲突就需要解决冲突后再提交。SVN开发模式合并举例;选择第二种合并方式,显44SVN开发模式冲突

冲突的产生:

团队协同工作时,当多人同时修改同一个文件,造成本地文件与SVN系统中的文件版本不一致,而导致文件无法提交的情况。

冲突的处理:

遇到冲突时,文件显示为黄色的感叹号,这时你需要update该文件,看到新增了三个文件。

filename.minefilename.rOLDREVfilename.rNEWREV面对文件冲突,您可以选择以下三种方式解决冲突手动合并冲突文件使用工具解决冲突用revert放弃所做的修改SVN开发模式冲突45SVN开发模式用工具解决冲突使用自带工具,如图所示对比两个版本的文件,解决冲突工具中会列出两个版本冲突的部分,并让您选择使用哪个版本的内容

SVN开发模式用工具解决冲突使用自带工具,如图所示46SVN开发模式放弃修改选择revert放弃自己所做的修改SVN开发模式放弃修改47SVN开发模式提交解决结果通过上面所说的三种方法,解决冲突后。要选择resolved解决后,新增的三个文件会自动删除再选择commit提交到SVNSVN开发模式提交解决结果通过上面所说的三种方法,解决冲突后48SVN开发模式锁定和解锁

获取锁定(Getlock):

在加锁原因中加入备注,其他人可以浏览版本库/日志里面看到添加的信息,包括谁,什么时间,为什么锁定等。获取锁定后,文件上显示一个小锁SVN开发模式锁定和解锁获取锁定后,文件上显示一个小锁49SVN开发模式解除锁定(Releaselock):

修改完文件并提交后,需及时的解锁,这样其他人才可以获取锁定,既而修改文件。解除锁定后,小锁消失,文件显示为绿色的勾勾SVN开发模式解除锁定(Releaselock):解除锁定50SVN的特色SVN特色-图标重载SVN最直观的功能之一就是图标重载,根据文件的Subversion状态的不同,重载的图标也不同。重载的图标显示在工作副本的文件上,很直观的就可以知道文件目前处于什么状态,是否被修改过,是否已同步到配置库中。

SVN的特色SVN特色-图标重载SVN最直观的功能之51SVN特色SVN特色-图标重载如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。一个新检出的工作复本使用绿色的对勾做重载。表示Subversion状态正常.在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。加号告诉你有一个文件或是目录已经被计划加入版本控制。这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。如果你拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。如果在提交的过程中出现了冲突图标变成黄色感叹号。SVN特色SVN特色-图标重载如果你给一个文件设置了svn:52SVN特色不像其他版本控制系统,Subversion的修订号是针对整个版本库的,而不是单个文件。每一个修订号代表了一次提交后版本库整个目录树的特定状态,另一种理解是修订号N代表版本库已经经过了N次提交。当Subversion用户讨论“文件Foo.c的修订号N”时,他们的实际意思是“版本库在修订号N时的Foo.c文件”。需要注意的是,如图:修订号不同并不表示文件内容不同。SVN特色-全局修订号Foo.cFoo.cSVN特色不像其他版本控制系统,Su53SVN特色这就是传说中的时间机器和时空隧道——SVN版本控制系统我们可以找到过去的任何一个版本的文件!SVN特色这就是传说中的时间机器和时空隧道——SVN版本54SVN特色我们可以比较得到不同版本所做改动的文件列表,也可以得到一个可编辑文件所做的具体改动。SVN特色我们可以比较得到不同版本所做改动的文件55TortoiseSVN的案例分析1.SVN修订号不连续

原因:SVN修订号是相对于整个配置库的,更新时看到的版本也是整个配置库的修订号,并不是某一个目录的修订号。

解决方法:无,SVN特色。2.修改工作副本后,提交时提示“Resourceoutofdate”,提交失败。原因:工作副本不是最新版本,提交失败。解决方法:先更新后再提交,遇冲突时解决冲突后再提交。3.提示400错误

原因:操作者某些操作不准确,引起混乱,可能属于SVN客户端本身的bug

解决方法:暂时无很好的解决方法。4.提示403错误

原因:不能进行该操作。比如URL不对;未开通该目录相关权限;用户名密码不对等。

解决方法:检查操作对应的URL是否正确,是否有权限,输入的用户名和密码是否正确等,根据错误解决问题。TortoiseSVN的案例分析1.SVN修订号不连续56TortoiseSVN的案例分析5.提示需“清理(cleanup)”

原因:服务器问题,一个SVN指令不能成功地完成,你的工作副本因此被滞留在一个不一致的状态。

解决方法:在上一层目录执行清理动作(cleanup),若执行不成功,根据错误提示,删除引起不能清理的文件夹,然后update。6.不能正常检出,提示URL过长

原因:目录过深,即URL过长,SVN客户端的bug,目前发现V1.5.3版本存在该问题。

解决方法:在上一层目录检出,或许更换SVN客户端安装版本,同时注意建立配置库目录时不易建立过深的目录。7.本地副本不能删除,提示text-base过长

原因:目录过深。

解决方法:修改目录的名字,缩短工作副本目录名字。TortoiseSVN的案例分析5.提示需“清理(clean57TortoiseSVN的案例分析8.删除/重命名/移动/拷贝文件,提交后,服务器上与预期结果不一致

可能原因:使用WINDOWS删除或者重命名/移动命令进行操作.SVN有专有的Delete/Rename/move/copy命令,对于WINDOWS命令不能识别,使用WINDOWS命令会出现混乱。

解决方法:还原到前一版本,重新使用SVN自身Delete/Rename/move/copy命令。9.将所有修改都提交后红色感叹号不消失

原因:页面刷新比较慢。

解决方法:刷新页面或者重启电脑。10.使用比较功能时,提示“***isnotavalidtextfile”!

原因:不可编辑的文件不能比较具体的内容。

解决方法:暂时无。11.能执行历史版本的日志信息修改动作,但是“ok”确定却不成功,提示出错

原因:SVN默认状态下不允许修改日志信息。

解决方法:在SVN上服务器上增加pre-revprop-changehook.但不建议使用TortoiseSVN的案例分析8.删除/重命名/移动/拷贝58TortoiseSVN的案例分析12.受版本控制的文件,显示”奇怪的“符号,如灰色的勾勾等

原因:SVN的特色图标重载:处于不同的状态,显示不同的图标。

解决方法:可以通过TortoiserSVN-Setting中的IconSet中查看各个图标表示的状态。13.域帐户密码修改后,SVN的命令不能成功执行

原因:密码错误,先前使用SVN命令时保存了认证信息,所以SVN命令的不能执行成功。

解决方法:在桌面上按右键,选择Setting命令,进入Savedate,将认证信息这一项clear掉。这样重新执行所需的SVN命令,即会出现让您输入用户名和密码。TortoiseSVN的案例分析12.受版本控制的文件,显示59SVN工具介绍thankyouSVN工具介绍thankyou60演讲完毕,谢谢观看!演讲完毕,谢谢观看!61SVN工具介绍 研发部SVN工具介绍 研发部62TortoiseSVN的安装TortoiseSVN最常用的四个命令TortoiseSVN实用功能TortoiseSVN其他功能SVN开发模式SVN的特色SVN案例分析主要内容TortoiseSVN的安装主要内容63

TortoiseSVN安装版本的选择TortoiseSVN安装

目前公司常用的三个版本:V1.4.8、V1.5.3、V1.6.6。三个版本大致功能类似,没有很大的变化。通过一段时间使用发现V1.4.8相比V1.5.3更为稳定,而且目录过深时,V1.5.3不能检出(该版本的bug),而V1.4.8可以。但V1.5.3作为V1.4.8的升级版本操作更方便,功能更完善。最新版本V1.6.6,修改了V1.5.3深目录不能检出的bug,操作也更为方便,功能更加全面,目前正准备推广使用。TortoiseSVN安装64TortoiseSVN安装TortoiseSVN安装

乌龟安装时无需特殊配置,直接安装即可。安装成功后,在桌面上右键,即可看到下图:SVN特色建议:升级TortoiseSVN时,先卸载先前的安装版本,再重新安装新版本!TortoiseSVN安装TortoiseSVN安装SVN65TortoiseSVN安装中文版安装

若需安装中文版,则需再安装中文语言包,并在setting中将语言设置为中文,如下图所示:TortoiseSVN安装中文版安装66TortoiseSVN最常用的四个命令最常用的四个命令1.Repo-browser(浏览版本库)

通过“浏览版本库”可以直接查看服务器上指定目录下的所有目录结构(需要有相关权限),包括特定版本的作者,提交时间等,并且在浏览版本库里面链接了很多SVN常用的功能。如显示日志,检出,导出,检入文件/文件夹,改名,删除文件,分支建立等。2.Checkout(检出)

从SVN服务器上得到数据,即建立本地副本,并且修改后可以commit到SVN服务器上。相对于CC来说,SVN的checkout可以说完成了建立本地视图和checkout两个动作。checkout命令可以在本地计算机上,浏览版本库,显示日志等多个地方找到。3.Update(更新)

更新本地副本,得到SVN服务器上最新的数据。一般checkout建立本地副本后,都在该本地副本上修改提交,若想再次得到服务器上的最新版本,即需用Update。在修改之前,一般我们都需要执行Update动作,以保证在最新版本上做修改,以减少提交时冲突。特别是用锁定的模式开发,修改前必须先更新并获得锁后才能修改(后面会具体描述)提交。4.Commit(提交)

提交修改到SVN服务器上。所有需提交到SVN服务器上本地副本的修改都需要用Commit命令完成。TortoiseSVN最常用的四个命令最常用的四个命令67TortoiseSVN最常用的四个命令Repo-browser(浏览版本库)TortoiseSVN最常用的四个命令Repo-browse68TortoiseSVN最常用的四个命令按右键,链接的功能列表版本信息选中“保存认证”,下次登入无需再认证TortoiseSVN最常用的四个命令按右键,链接的功能列表69TortoiseSVN最常用的四个命令Update(更新)

选中需要更新的本地副本,按右键,选择SVNUpdate即可得到服务器上最新的版本。若本地上有修改,更新时经常会出现冲突(黄色感叹号),此时表明您本地副本的修改和服务器上的最新版本有冲突,需要您解决冲突后才能提交你的修改(解决冲突方法后面具体叙述)。故为了减少冲突的产生,我们很有必要在修改前进行更新,等到服务器上最新的版本。updateTortoiseSVN最常用的四个命令Update(更新)u70TortoiseSVN最常用的四个命令Checkout(检出)

本地计算机上:1.在本地计算机上按右键选择SVNCheckout命令2.填入/选择需检出URL,选择目标检出目录,根据需要选择检出深度和版本,OK即可。

服务器检出地址检出深度选择检出后本地副本显示为绿色的勾勾!版本选择TortoiseSVN最常用的四个命令Checkout(检出71TortoiseSVN最常用的四个命令Checkout(检出)浏览版本库中:

1.进入浏览版本库,选中需检出的目录文件夹,选择checkout。

2.出现检出对话框,选择检出目标位置和检出深度等OK即可。TortoiseSVN最常用的四个命令Checkout(检出72TortoiseSVN最常用的四个命令Checkout(检出)显示日志里:

选择showlog命令,进入显示日志界面,选择需检出的版本,按右键选checkout,检出对应版本的文件资料。

TortoiseSVN最常用的四个命令Checkout(检出73TortoiseSVN最常用的四个命令Commit(提交)1.选中已修改的本地副本(红色感叹号),按右键,选择SVNCommit命令2.在对话框中填写日志(描述修改的内容,注意点等),选择需要提交的文件,点OK即可。提交后红色的感叹号变成了绿色的勾勾!待提交文件列表,可以选择是否提交TortoiseSVN最常用的四个命令Commit(提交)提74TortoiseSVN实用功能实用功能之一-还原1.本地副本还原(Revert)

放弃本地副本的修改,将其还原到本地修改前的版本(最后提交或者更新的版本)2.还原至某一历史版本(Reverttothisrevision)

将本地副本复原到选中的某一个历史版本,若需将该复原版本提交到服务器上,则还需Commit!3.还原某一历史版本的修改(Revertchangesfromthisrevision)

放弃某一历史版本的修改。该动作只还原某一个特定版本的修改,并不还原该版本之前所有版本的修改,若需将该复原版本提交到服务器上,则还需Commit!TortoiseSVN实用功能实用功能之一-还原75TortoiseSVN实用功能本地副本还原(Revert)

选择需还原的本地副本,按右键,选“Revert”,在弹出的对话框中选择需还原的文件,OK即可。可以选择是否还原?还原后,红色感叹号消失,变成绿色勾勾!TortoiseSVN实用功能本地副本还原(Revert)可76TortoiseSVN实用功能还原至某一历史版本(Reverttothisrevision)

1.选中本地副本,进入显示日志对话框。选择还原版本,按右键,选择“Reverttothisrevision”,即出现如下还原对话框,OK即可。2.还原后,有修改则本地副本即变为红色感叹号,若需提交到服务器上,还需commit!TortoiseSVN实用功能还原至某一历史版本(Rever77TortoiseSVN实用功能还原某一历史版本的修改(Revertchangesfromthisrevision)操作同“Reverttothisrevision”。TortoiseSVN实用功能还原某一历史版本的修改78

实用功能之二-查询功能1.显示日志(showlog)

日志查询功能主要作用是:查找历史版本信息,用于追溯。日志信息里包含了所有历史版本的5个W,who.when.where.what.why!同时“显示日志”命令充当了其他多个重要功能的接口,如“比较版本差异”,“更新至此版本”,“复原至此版本”等。“显示日志”命令位于多个对话框中,可以说无孔不入,即表明其实用性和重要性了!2.更新版本(Updatetorevision/updateitemtorevision)

更新版本可以使本地副本更新到任意一个历史版本,方便用户详细查看某一版本的具体内容。

TortoiseSVN实用功能实用功能之二-查询功能TortoiseSVN实用功能79TortoiseSVN实用功能显示日志(showlog)在任意有“showlog”命令的地方,点击“showlog”,即可显示如下图。其他功能的接口TortoiseSVN实用功能显示日志(showlog)其80TortoiseSVN实用功能更新版本(Updatetorevision)

选择Updatetorevision命令,填入版本号/通过showlog选择版本,OK即可,此时本地副本显示的即为你选择的版本内容。更新深度更新后本地副本仅作为显示某一版本内容,不能复原为该版本,与复原命令不同!TortoiseSVN实用功能更新版本(Updateto81TortoiseSVN实用功能更新版本(updateitemtorevision)TortoiseSVN实用功能更新版本(updateite82TortoiseSVN实用功能实用功能之三-比较功能

SVN提供了多个实现比较功能的命令,来满足不同事物的差异比较。1.检查更新(checkformodification)

获得本地副本所做的修改内容。2.与工作副本比较获得任何一个历史版本与本地副本的差异。3.比较版本差异(追溯版本,以标准差异文件形式显示修改)获得任何两个历史版本之间的差异。其中:“追溯版本”不仅显示两个版本的差异,同时显示修改作者,时间等信息。“以标准差异文件形式显示修改”:以特定的形式显示差异,显示形式与比较版本差异和追溯版本命令不同。TortoiseSVN实用功能实用功能之三-比较功能83TortoiseSVN实用功能检查更新(checkformodification)

1.选择需检查的本地副本,按右键,选择“检查更新”,即显示修改文件列表。2.若需查看可编辑文件具体的修改内容,选中该文件按右键,选择“与基础版本比较”,确定,即可得到具体的修改内容。得到本地副本修改的文件列表与基础版本比较,得到文件内修改的具体内容TortoiseSVN实用功能检查更新(checkfor84TortoiseSVN实用功能与工作副本比较(Comparewithworkingcopy)

1.选中本地副本,进入显示日志页面,选择任一版本,按右键,选择“与工作副本比较”,确定即显差异文件列表。2.双击差异文件列表中某一个具体的可编辑文件,即可显示该文件内容的具体差异。TortoiseSVN实用功能与工作副本比较(Compare85TortoiseSVN实用功能差异文件列表服务器上版本工作副本比较后的结果TortoiseSVN实用功能差异文件列表服务器上版本工作副86TortoiseSVN实用功能比较版本差异(comparerevision)

1.使用CTRL+左键选择任意两版本,按右键,选择“比较版本差异”,出现差异文件列表。2.选择某一可编辑文件,按右键,选择“比较版本差异”,即可得到文件的具体差异。若选择“追溯版本”,则比“比较版本差异”多了时间,作者等信息的显示。差异文件列表TortoiseSVN实用功能比较版本差异(compare87TortoiseSVN实用功能比较版本差异TortoiseSVN实用功能比较版本差异88TortoiseSVN实用功能追溯版本以标准差异文件形式显示修改,类似,不累述!与“比较版本差异”比较,多了时间和作者等信息的显示TortoiseSVN实用功能追溯版本以标准差异文件形式显89TortoiseSVN实用功能实用功能之四-

版本分支图(Revisiongraph)

版本分支图主要显示以下内容:

1.建立分支和标签的时间和版本2.文件夹名称的修改3.最新的版本4.本地副本的版本另外鼠标滑过任意版本框,都会显示该版本的日期、作者和备注信息等;选中版本框按右键可以使用另外很多的功能,如显示日志,合并版本等等;还可通过“CTRL+左键”选中两个版本进行比较等。TortoiseSVN实用功能实用功能之四-版本分支图(90TortoiseSVN实用功能版本分支图(Revisiongraph)

进入版本分支图有多种方法,如本地副本、浏览版本库等。直接选择“Revisiongraph“即可。版本分支图中版本框不同的形状,颜色表示不同的分类。分支主干最新版本历史版本日志TortoiseSVN实用功能版本分支图(Revision91SVN其他常用功能其他常用功能1.增加(Add)/删除(Delete)/改名(Rename)

增加:增加未受版本控制的文件到版本控制中。

删除:删除服务器上的文件。

改名:重新命名文件。

Add/Delete/Rename都可以在本地副本上和浏览版本库中实现注意:Add/Delete/Rename在本地副本上使用,都仅仅是修改,没有提交的动作,故一般Add/Delete/Rename和Commit一起使用,当Add/Delete/Rename后,若需要在提交到配置库上,则还需Commit。2.增加到忽略列表(Deleteandaddtoignorelist)

很多时候我们不想把部分文件提交到配置库中,但是本地副本想保留,这时可以将文件增加到忽略列表,这样提交时这些文件不提交到配置库。如可以将编译生成的release文件夹加入到忽略列表里面。SVN其他常用功能其他常用功能92SVN其他常用功能3.导出(Exprot)

有时只想需得到配置库的某些资料,但不想受SVN版本控制,此时可以用Exprot。Exprot与checkout一样都是从服务器中得到数据资料,但是Exprot的数据资料不受版本的控制,无.SVN文件夹。4.另存为(Saveas)

对于单个的文件,从服务器上获取不受版本控制的文件可以通过浏览版本库里面的Saveas命令实现。5.移动文件/文件夹

有时候我们需要将一个文件/文件夹移动到另一个文件夹下,SVN在本地副本上的文件和文件夹的移动也有特有的命令。6.重新定位(ReLocate)

当URL修改(服务器搬迁IP地址修改等),但本地副本还需继续使用,则需重新定位URL,将先前checkout时的URL重新定位为最新的URL。SVN其他常用功能3.导出(Exprot)93SVN其他常用功能增加(Add)

本地副本上增加:

1.选中需加入版本控制的文件,右键,选择“TortoiseSVNAdd”。2.“Add”后,按右键选择“Commit”命令

浏览版本库中增加(包含提交):

AddFiles:增加文件,在对应目录按右键AddFiles,填入日志信息,OK即可

Addfolder:增加文件夹,在对应目录按右键Addfolder,填入日志信息,OK即可SVN其他常用功能增加(Add)浏览版本库中94SVN其他常用功能删除(Delete)

本地副本上删除:

1.选中需删除的文件,右键,选择“TortoiseSVNDelete”。2.“Delete”后,在上一层目录按右键选择“Commit”命令。

浏览版本库里删除(包含提交):选中删除的文件,右键“Delete”,在弹出的对话框中输入日志即可。SVN其他常用功能删除(Delete)浏览版本95SVN其他常用功能改名(Rename)本地副本上改名:

1.选中需改名的文件/文件夹,按右键,选择“TortoiseSVNRename”2.“Rename”后,在上一层目录按右键选择“Commit”命令

浏览版本中改名(包含提交):

选中需改名的文件/文件夹,按右键,输入新的名字,OK,在弹出的对话框中输入日志信息即可。SVN其他常用功能改名(Rename)浏览版本中改名(96SVN其他常用功能增加到忽略列表(Deleteandaddtoignorelist)

增加到忽略列表后,文件无特殊的标志,并且提交修改时该文件不提交。区别于未受版本控制的文件:未受版本控制的文件显示为“?”,并且在上层目录提交时可以提交到服务器。SVN其他常用功能增加到忽略列表(Deleteandad97SVN其他常用功能导出(Exprot)

导出命令可以在多个位置使用,如本地副本,浏览版本库,显示日志等。操作方法与checkout一致。导出的文件无特殊的标志,即windows文件。

浏览版本库里面使用SVN其他常用功能导出(Exprot)浏览版本库里面使用98SVN其他常用功能移动文件/文件夹

本地副本上移动:

1.选中要移动的文件按住鼠标右键不放,拖动到目标文件夹,放开鼠标,出现如下图选项,选择需要的命令即可2.在上一层目录上按右键,选择commit,提交到服务器上。

浏览版本中移动(包含提交):选中需移动的文件按左键不放,将文件拖动到目标目录文件夹,在弹出的提交对话框中输入日志,OK即可。SVN其他常用功能移动文件/文件夹浏览版本中移动99SVN其他常用功能重新定位(ReLocate)

选中本地副本,按右键选择ReLocate命令,将ToURL里面修改为最新的URL即可。SVN其他常用功能重新定位(ReLocate)100SVN开发模式1.分支与合并

支持并行开发,支持分支与主干之间的合并,即可将主干(分支)上修改完的bug合并到分支(主干)上,但这很可能引起冲突,故要求操作者有解决冲突的能力。建议:尽量少建分支,晚建分支。多建一个分支即表明多一点成本。(不可编辑的文件不可合并)2.锁定与解锁

支持并行开发,但锁定可能导致管理问题,不必要的线性开发,也可能导致错误的安全状态。该模式适用于不可编辑文件的并行开发。注意:使用该模式时,修改者在修改前必须先获得锁,这样才能保证是在最新的文件上做修改,避免冲突的产生。SVN开发模式1.分支与合并101SVN开发模式分支和合并(branches/Merge)分支用途

1.软件开发时以主干为基础,实现并行开发,不断将分支上的修改合并到主干上。2.同一软件的发布版本BUG修改和升版的并行开发等。创建分支

命令1:Branches/Tags(工作副本使用)命令2:copyto(浏览版本库使用)命令3:Createbranche/tagformthisrevision(showlog使用)SVN开发模式分支和合并(branches/Merge)102SVN开发模式

创建分支后,在未建立分支前checkout的本地副本上查看分支,还需先Update!分支名建立分支版本选择日志填写以命令1(Branches/Tags)方式举例说明:

在本地副本上选择需建立分支的目录,按右键,选择Branches/Tags,在tourl中填入分支建立的位置和名称,选择建立分支的版本,填写日志,提交即可。SVN开发模式创建分支后,在未建立分支前che103SVN开发模式合并(Merge)

首先选择合并的种类

合并同一分支的不同版本之间差异合并一个分支的所有差异合并不同分支之间差异SVN开发模式合并(Merge)合并同一分支的不同版本之间差104SVN开发模式合并举例;选择第二种合并方式,显示如下。选择需合并的分支和合并深度,Merge,最后还需将Merge的修改Commit。注意:Merge过程中很容易出现冲突,出现冲突就需要解决冲突后再提交。SVN开发模式合并举例;选择第二种合并方式,显105SVN开发模式冲突

冲突的产生:

团队协同工作时,当多人同时修改同一个文件,造成本地文件与SVN系统中的文件版本不一致,而导致文件无法提交的情况。

冲突的处理:

遇到冲突时,文件显示为黄色的感叹号,这时你需要update该文件,看到新增了三个文件。

filename.minefilename.rOLDREVfilename.rNEWREV面对文件冲突,您可以选择以下三种方式解决冲突手动合并冲突文件使用工具解决冲突用revert放弃所做的修改SVN开发模式冲突106SVN开发模式用工具解决冲突使用自带工具,如图所示对比两个版本的文件,解决冲突工具中会列出两个版本冲突的部分,并让您选择使用哪个版本的内容

SVN开发模式用工具解决冲突使用自带工具,如图所示107SVN开发模式放弃修改选择revert放弃自己所做的修改SVN开发模式放弃修改108SVN开发模式提交解决结果通过上面所说的三种方法,解决冲突后。要选择resolved解决后,新增的三个文件会自动删除再选择commit提交到SVNSVN开发模式提交解决结果通过上面所说的三种方法,解决冲突后109SVN开发模式锁定和解锁

获取锁定(Getlock):

在加锁原因中加入备注,其他人可以浏览版本库/日志里面看到添加的信息,包括谁,什么时间,为什么锁定等。获取锁定后,文件上显示一个小锁SVN开发模式锁定和解锁获取锁定后,文件上显示一个小锁110SVN开发模式解除锁定(Releaselock):

修改完文件并提交后,需及时的解锁,这样其他人才可以获取锁定,既而修改文件。解除锁定后,小锁消失,文件显示为绿色的勾勾SVN开发模式解除锁定(Releaselock):解除锁定111SVN的特色SVN特色-图标重载SVN最直观的功能之一就是图标重载,根据文件的Subversion状态的不同,重载的图标也不同。重载的图标显示在工作副本的文件上,很直观的就可以知道文件目前处于什么状态,是否被修改过,是否已同步到配置库中。

SVN的特色SVN特色-图标重载SVN最直观的功能之112SVN特色SVN特色-图标重载如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前

温馨提示

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

评论

0/150

提交评论