TortoiseSVN常规功能.docx
- 文档编号:16214222
- 上传时间:2023-07-11
- 格式:DOCX
- 页数:28
- 大小:1.11MB
TortoiseSVN常规功能.docx
《TortoiseSVN常规功能.docx》由会员分享,可在线阅读,更多相关《TortoiseSVN常规功能.docx(28页珍藏版)》请在冰点文库上搜索。
TortoiseSVN常规功能
1TortoiseSVN常规功能介绍
TortoiseSVN是最常用的Subversion客户端软件,其所有功能都集成在系统右键中,
通过系统右键菜单便可实现TortoiseSVN的日常操作。
首先,需从配置库(repository)签出(checkout)原始码的一个版本到本地工作目录。
然后,可以只编辑想要改变的文件,也可以新增文件或是删除不再需要的文件。
当完
成时,可以签入(Commit)到库中
如果在修改时,其它人已经改变了同一个文件,那么签入(commit)会失败。
那么
必须从仓库(repository)更新(Update)所有的文件。
这将其它开发人员的改变自动合并
到您的文件副本里。
但如果两个人改变了同一行程序代码或者修改的是二进制文件(如word、excel等),
这将发生“冲突(Conflict)”,必须手动解决冲突(见后面)。
1.1初始化导入/import
u对于Subversion来讲。
服务端进行配置后,项目版本库第一次运行,会由配置管理员进行第一次导入操作。
u来到我们需要导入的项目根目录,依次导入D:
\branchs;tags;trunk,目录下有若干个文件。
1)右键->TortoiseSVN->导入/import
2)版本库URL输入https:
//192.168.75.135/www
3)系统提示输入用户名跟密码
点击OK后就可以将数据导入到我们刚刚定义的数据库中了。
在进行初始化导入操作时,也可通过鼠标选中需要导入的文件夹直接拖拽“版本浏览/
Repo–Browser”右侧。
1.2SVN检出/SVNcheckout
◆该操作可以将SVN服务端所保存的数据下载至个人工作平台。
◆来到我们想要导入的项目根目录,在这个例子里是C:
\DocumentsandSettings\\桌面\test,该目录为空:
1)右键->SVN检出/SVNcheckout
2)版本库URL输入svn:
//192.168.75.138/www(此处版本库URL为subversion
服务端IP地址;检出至目录为C:
\DocumentsandSettings\chengr.HS\桌面\test),点击确
定。
版本库URL/URLofrepository:
为配置库路径
检出至目录(D)/checkoutdirectory:
为本地工作目录
其它一般按缺省设置。
通常情况下为最新版本,如需要其他版本,点击显示日志进行选择
1.3显示日志/Showlog
该功能主要显示版本库中过往的版本更新记录,在操作中可以显示更改的详情。
1.4版本浏览器/Repo–Browser
版本库浏览工具,可以直观的显示版本库中的受控文件。
如果想看文件,也可直接选中文件,右键,选择打开功能。
注意:
对于word、excel
等文件,应选择openwith,然后选择相应的软件打开。
1.5检查修改/Checkformodifications
检查版本库中已变更的版本,并显示与本地工作平台不同的文件
1.6版本分枝图/Revisiongraph
主要作用是显示分支与合并,可以直观的了解版本变化的过程。
1.7更新至版本/Updatetorevision
更新到其中一个已控制的版本
1.8SVN还原/Revert
当用户对工作平台的内容进行修改,且未提交至版本库时,可以选择此项,还原已修改
的文件
注:
Updata和Revert的区别
假设当前最新的版本是6,但是,最新的一次提交不是你想要的,也就是想把版本为6的修改干掉
下面来看看如何分辨用revert和update来实现。
1、使用revert
保证本地copy为最新版本,即版本6.
将本地copyrevert到版本5.
将本地copycommit。
2、使用update
将本地copyupdate到版本5.
这个时候是没办法直接提交的,因为你的修改不是在最新的版本(6)上进行的。
需要把版本5做个备份,然后checkout版本6.
通过文件比较工具将版本6的本地copy修改为与版本5的本地copy一致。
然后将版本6的本地copy提交。
可见,revert与update的本质区别是,
revert是在本地copy原来版本的基础上进行的修改,若原来本地copy的版本为最新,可以直接commit;
update只是将本地copy更新到一个指定的版本,若更新到的不是最新版本,不能进行commit。
可见revert就是回退修改,但版本保持不变;update是将本地copy更新到一个指定的版本。
1.9清理/Cleanup
当进行了一次版本稳定后,可以点击此项,系统将清除多余的文件
有些时候在客户端Checkout文件后,SVN的系统图标也会不显示,可以执行一下“Cleanup”,就会出现SVN的系统图标。
1.10获取锁定/Getlock
可以对版本库中的文件或文件夹进行锁定,则其他用户暂时无法对该文件或文件夹进行操作。
一旦对文件执行该操作,如果要修改文件,必须先获取锁定,才能修改。
1.11解除锁定/Releaselock
与功能2.10对应,释放锁定,其他人可以对文件进行编辑
1.12更新工作区/Update
从服务器取得变动的部分到本地副本的过程称作“更新(Updating)”。
更新可能作用于文件、目录上。
若要更新,选择想要的文件或目录,按鼠标右键并选择SVNUpdate。
对话框会蹦出并显示当它执行时更新的过程。
由其他人所做的变动会被合并到您的文件之中,执行更新(update)对配置库不会被影响。
如果在更新期间收到冲突提示,需手工解决冲突。
1.13增加/Add
该功能可用于向版本库(repository)增加文件或文件夹。
也可以通过鼠标选中文件或文件夹直接拖拽到“版本库浏览器/Repo–Browser”右侧。
在新增操作被执行后,文件或文件小图标显示为“被改变了的(changed)”。
这是因为新增被视为本地端的变动,且尚未被用到仓库(repository)上,直到签入(commit)它们
1.14撤销增加/UndoAdd
该功能与2.13功能对应,当增加的文件、文件夹还没提交(Commit)到配置库中,
刚增加的文件或文件夹想撤销,可执行该操作。
2.15提交/SVNCommit
让本地的修改在仓库(repository)有效称作“签入(committing)”。
在签入之前,应该做更新以确保没有冲突(conflicts)。
要开始签入更改,选择想要签入(commit)的文件或文件夹。
在所选的文件或文件夹上按鼠标右键,并选择SVNCommit。
要实现本地文件或文件夹增加到版本库(repository)中,其流程:
添加的文件时,别人看不到,版本库里也没有,最可能的原因是,只是执行了“Add”
而没有“Commit”,这样只是在本地注明某个文件是预定要增加的,而没有实际添加到版本
库中,要添加到版本库必须执行“Commit”。
删除文件也是一样。
当仓库与目录很多,使用TSVN每次需要选择目录URLofrepository有很多地址时,
可通过:
右键->TortoiseSVN->Settings->SavedData,清除你想要的东西,如:
URL、log、窗口大小、密码缓存等。
1.16重新定位/relocate(没有成功)
通过切换,可将版本库地址切换到另一个地方,在使用分支时经常用到。
另外在内外网切换时也可以通过此方式实现。
为了内外网使用同一地址,避免切换,也可在
C:
\WINDOWS\system32\drivers\etc\hosts文件内增加一行:
60.191.25.162
这样无论内外网都可统一使用一个地址了。
2TortoiseSVN的进阶用法
2.1锁定文件
锁分为两类:
乐观锁、悲观锁
2.1.1乐观锁
乐观锁设定
1下鼠标右键并选择TortoiseSVN→Getlock。
2当修改完成或无需锁定或其他人需要修改时,可以释放锁/releaselock
(即“锁定-编辑-解锁”模型)
对于二进制文件,如doc、xls等,可采用设置锁的方式。
这对于习惯于VSS模式的人
员,也可用此方式。
2.1.2悲观锁
特点:
●对文件设置该属性后,checkout文件都为只读,图标为灰色勾;
●必须先获取锁定才能进行修改,且一旦一个用户获得锁,其他人就无法修改;
●若工作副本已经outofdate无法获取锁定,必须更新到最新版本再获取锁定;
●可以对文件或文件夹进行;
缺点:
●新增的文件没有该属性;
悲观锁的设定:
●对文件或文件夹添加svn:
needs-lock
●右键选中->属性->Subversion选项夹->properties->new->svn:
needs-lock,值
可填*
之后还要提交
提交之后的效果
注:
当对文件夹锁定时,需勾选“递归应用该属性/Applypropertyrecursively”;当
对文件时,无需勾选“递归应用该属性/Applypropertyrecursively”。
修改被锁定文件:
注意事项:
●用户checkout该文件最新的版本;
修改文件步骤:
1获取锁(假设我们对“使用手册.doc”进行了属性修改”)
Checkout“使用手册.doc”后,右击菜单->获取锁
②修改并checkin
按日常修改流程执行;
③释放锁/releaselock
修改完成后,commit“使用手册.doc”,系统会自动释放锁;如果该文件仍然需要保
持锁定,可以在提交的时候选择“保持锁定选项”
使用悲观锁可以有效解决本来计划对不太适合合并关键类文档(如二进制文件:
doc,xls等文件)出现忘记锁定的情况。
3.2创建分支/Branch/tag
TAG使得系统目前的状态可以在未来被重新建构。
SVN使用整体版本号,每次提交都将使全局版本号加1,Tag可为全局版本号取个容易记忆的名称。
与CVS不同,它执行非常快。
在SVN中,标记(Tags)和分支(Branch)的命令是在一起,说明两者有相似之处。
未修改的分支即为“标记”,标记修改后就转化为分支。
作基线时,可通过标记操作实现,将系统主干(trunk)复制到tags目录下即可。
如:
1、选中trunk目录
2、右键-TortoiseSVN-tags/branches
3、出现界面
因此,项目目录结构中,顶层必须符合规范,设立trunk、tags和branches目录,否
则将无法做基线。
对于文件级的标签,虽然也可以通过tags操作,但效果不大好,可在提交时写在备注
说明中,以后可在日志显示中查到。
有几点需要注意:
默认的目标URL将会是你当前工作副本所处的源URL。
你必须给你分支/标记编辑
一个路径。
必须选择要复制的源位置。
1)版本库中的最新版本
新分支直接从仓库中的最新版本里复制出来
2)版本库中指定具体的版本
在仓库中直接复制建立一个新分支同时也可以选择一个旧版本。
假如在你上周发布
了项目时忘记了做标记,这非常有用。
3)工作副本
新的分支是一个完全等同于你的本地工作副本的一个副本
2.3合并分支/Merge
选择右键菜单TortoiseSVN->合并/Merge
首先考虑这么一个需求,为了Bug修改的工作,创建分支A,主干同时也在进行正常
的开发工作,现在分支A的工作完成,需要将A上的修改合并到主干上,这应当是最经常使用的一种模式,下面分步骤说明合并过程。
●第一步:
将工作副本切换到主干上:
这一步很重要,当前的工作副本的是要合并的
目的地
●第二步:
在主干根目录内需要merge的文件上右键,如下图,选择最后一项
下一步
进行这一步操作时有几点需要注意:
◆当前工作副本URL,选择主干目录URL一致;
◆起始URL:
选择要合并分支的起始版本URL;
◆结束URL:
选择要合并分支的结束版本URL;
◆起始和结束的版本:
起始版本应当找到最后一次同步时的版本,如果从没有同步过
(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。
◆如果有冲突的话,手工解决冲突,提交就可以了。
3.4合并冲突/Editconflicts
通过右键选中文件“TortoiseSVN->编辑冲突/Editconflicts”
有时候,当您从仓库(repository)更新您的文件,SVN服务器会报告冲突。
当二个或更多开发人员变动了一个文件的同一行,冲突会发生,需要人工解决。
可以使用外部的merge工具
4TortoiseSVN常见图标说明
在本地工作副本(版本库)中,常见的文件或是文件夹SVN状态:
如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TortoiseSVN 常规 功能
![提示](https://static.bingdoc.com/images/bang_tan.gif)