TortoiseSVN Client使用说明

本文详细介绍了TortoiseSVN客户端的安装、配置和基本操作,包括Repo-Browser、Checkout、Commit、Add、Delete、Rename、Revert、Update、Show log等功能的使用方法,旨在帮助用户掌握SVN版本控制工具的日常操作。

1、TortoiseSVN的安装

当前使用的TortoiseSVN为:TortoiseSVN-1.14.1.29085-x64-svn-1.14.1.msi,下载安装地址:Downloads · TortoiseSVN

TortoiseSVN是SVN的客户端,双击执行安装程序,启动安装,一路按Next,直到下图可以修改安装路径,然后继续直到安装完毕。

2、TortoiseSVN的配置

   在windows浏览器中右击选择TSVN-Settings

(1)语言设置

在下面的General设置页面,Language可以选择中英文,中文需要安装一个插件LanguagePack_1.14.1.29085-x64-zh_CN.msi。

(下载地址:Downloads · TortoiseSVN

(2)忽略文件的设置

在上图中“global ignore patten”中可以设置忽略特定后缀文件的提交,比如输入:*.o *.db * .bak *.obj,多个扩展名以空格隔开。设置后这些后缀的文件对SVN就是透明的,在提交或检出时被忽略。适宜于存在中间编译文件的提交。SVN 系统默认忽略如下后缀的文件: *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store。忽略仅针对未受版本控制的文件(unversioned file),对于已经加入到库中文件不能被忽略。

(4)时间的设置

“set filedates to the last commit time”,若勾选,则检出或更新操作时,文件的时间为库中最后提交的时间,否则文件的时间为当前时间。建议所有开发人员都勾选此选项。

(5)外部程序的设置

在”External Programs” 中可以设置自己喜欢比较工具,合并工具等。如下用merge.exe代替TSVN自带的比较工具。

(6)已保存信息的清理

Saved Data页保存用户使用过的URL,访问日志,认证数据等.如果需要切换用户,必须将认证数据(Authentication data)清空。

3、TortoiseSVN的基本操作

(1)Repo-Browser版本库浏览

客户端安装好TortoiseSVN后,在空白处点鼠标右键,如下图:

单击“Repo-Browser”浏览库,出现URL输入框,如下图

在URL输入项目库的地址svn://IP/路径。如图:

单击ok后,会出现如下图进行认证,输入用户和密码(需要单独向管理员申请),如果不想在今后的使用中重复输入,可以选上 save authentication,那么以后访问这个库,都不用再输入了。

输入用户和密码后,会出现如下图

在Repo-browser中,右击出现如下图菜单

Repo-Browser中的操作相当于在服务器上操作,所以执行添加文件、删除、重命名等操作后不需要再执行Commit 操作。为了防止误操作,推荐使用本地工作拷贝。

若勾选了save authentication,可以通过TortoiseaSVN 的setting来取消此选项。方法如下:任意地方右击,弹出菜单,选择TortoiseaSVN –setting,

点击下图左侧的Saved Data

点击Authentication data后的clear即可清除此选项。下次对库的操作就会出现用户认证的界面。

  为安全考虑,建议只在自己的常用机器上点选 save authentication

注意:首次访问SVN库时,会出现如下提示,选择“accept permanently”,以后就不会出现提示了。

(2)Checkout 检出

  Checkout 检出,可以建立本地工作拷贝,有两种方法。

1、一种方法:

  在windows 资源管理器中创建一个文件夹,选中文件夹为下载目录,右击,出现checkout

输入远程项目目录和本地工作目录:

输入正确的https地址,然后点击OK,远程服务器要求验证。

验证成功后,项目文件开始从远程服务器下载到本地工作目录:

现在,就创建好了一个本地的 Working Copy (相当于CC中的一个静态视图)。可以用 Windwos Explore来看看了, 进入这个目录,你会看到和库中你所选择的目录下完全相同的内容,但是如果你在 explore中选择的显示所有隐藏文件了话,还会在每个目录下都看到一个 .svn 的隐藏目录,这个目录存放了 SubVersion的一些控制信息,千万不要手工修改或删除这个 .svn隐藏目录!!! 否则会导致你本地的 Working Copy (静态视图)被破坏。

说明:

Down下来的文件夹的左下边会多出一些符号:

”√”表示文件和服务器上一样

”!”表示该文件夹下有文件和服务器上的文件不一样,已经修改了

“+”表示增加的文件或目录

“x”表示删除的文件或目录

2、还有一种方法,可以在Repo-browser中直接选中你要check out的目录,右键菜单-check out

输入你要导出到的本地工作目录,后面操作同上。

3、使用哪种方式来创建 Working Copy,完全是用户自己根据喜好来决定,可以随意的尝试,随意的创建,如果创建出的 Working Copy中的内容不是你想要的,没关系,直接将整个Working Copy删掉重新创建就行了,对库没有任何影响的。

为了保证开发工作在最新点,建议工作拷贝Check out 选择最新版本,并在每次进行修改之前,执行Update。要想获得之前某个版本的文档,可以使用后面介绍的Export 命令。

(3)Commit 提交

将工作空间做的修改提交,包括文件内容的修改,文件目录的添加,删除,命名,移动等。

使用SVN Commit命令,TortoiseSVN -> commit:

例如现在要修改某个文件, 进入这个目录选择你喜欢的编辑器来打开它并进行修改,并保存,图标发生变化。

这个时候如果我们用右键点击这个 Working Copy的顶级目录,并在上下文菜单中选择 TortoiseSVN->Check for Modification,就会看到这个 Working Copy中都有哪些变化,如下图。

在上图中可以看到,目前 Working Copy中,修改了什么文件。

    点击上图的Check repository可以查看本地工作拷贝与服务器端的变化。

  在修改完其它同一个故障的代码后,我们要将修改的内容入库,方法很简单,右键点击本 Working Copy的顶级目录,然后在上下文菜单中选择 SVN Commit

这里的 SVN Commit 相当于CC中的 checkin, 这样会出来如下的对话框:

上面的 Commit to: URL 提示你这次Commit的变更将合入到哪个库的哪个分支路径上,随后是一个空白的文本框,需要用户手工输入本次入库的日志信息,这里强烈建议每次入库都应该填写这里的内容,以方便别人理解你某次入库的目的。

Log Message History下拉框可以让你使用以前所输入过的日志,可以选择后再进行一些修改,这个功能可以根据实际情况使用。

下面的列表则列出了本次 Commit所需要改动的所有内容,在这里,你可以选择本次 Commit都要合入哪些内容, 一般每次 Commit应该合入一个逻辑上完整的内容,而不是每次Commit只合入一个文件的修改。 比如,解决某个bug,总共修改了100个文件, 那么就应该在一次Commit中将这些修改都合进去,这叫一个原子操作,以后的版本回退就可以简单的返回到这100个文件被修改之前的状态。

    勾选“show unversioned files”可以显示未版本化的文件,勾选上这些未版本化文件,可以一起提交的库中。相当于完成了add+commit 两个命令。

  一切都确认无误后,点 OK,就提交了入库内容,入库完毕后,会告诉你都发生了些什么,如下图

(4)Add 添加

TortoiseSVN -> Add

将文件或目录加入svn库。如果添加目录的话,目录下边的所有文件会同时添加。

可以选择要把哪些文件加入到库中(可以防止将某些不需要的内容加入到库中),Add命令会递归的搜索你所选择的哪个目录下的所有路径来查看有哪些文件可能需要被增加,因此点击Working Copy的顶级目录就会将本Working Copy的所有新文件都列出来让你选择。

选择好后,点击OK就完成了。添加成功

注意添加后文件的显示,带了蓝色的”+”号,如图:

在Add命令完成后,仍然可以做一些其他工作,比如对文件进行修改等,等到所有工作都做完后,在走前面的 Commit流程,就会将所作的所有工作都合入到库中了。

注意:这里不同于cc的地方,在cc中,进行add to source control后,就已经入库了,但是在svn中,add后需要再走commit流程,代码才正式入库。

(5)Delete 删除

TortoiseSVN -> Delete

删除文件或目录,不能直接用Windows的删除命令来操作,那样只是暂时的删除,在update Working Copy后,删除的文件又会被更新出来的。

要想从库中删除,必须选中你要删除的内容,然后右键 TortoiseSVN->Delete,这样才会将这个文件标记成要删除的。如果又不想删除了,在commit之前,可以用TortoiseSVN->Revert来恢复。

使用这个命令后,再运行 check for modifications

确认需要del后,使用前面所讲的 Commit命令,就会真正的在库中删除了。(仅仅是在最新版本中删除,要想获取原先版本必须通过版本回退的方法。)

(6)Rename 重命名

TortoiseSVN -> Rename

  要对目录和文件进行改名,可以在repo-browser中用Rename,改完后,在本地工作拷贝执行update 即可。也可在本地用TSVN的菜单rename命令,Rename 后需要Commit 提交。

注意:用svn的命令,不能直接在windows的资源管理器中更名。

(7)Revert 回退

  用Revert回退svn操作,相当于undo。只有还没有commit的操作才可以回退

使用命令,TortoiseSVN -> Revert:

在开发过程中,可能某一个文件或目录需要回退到之前的某一个版本,方法如下:

在工作拷贝中右击文件或目录,选择show log,出现此文件或目录的历次修改版本。

需将当前版本恢复到23版本,则右击23版本选择“revert to this revision”, 选择yes后,则此目录就恢复到了23版本。执行commit后形成新的版本,此版本内容同23版本。在23版本之后的修改将被忽略。

假如文件误删除,想要恢复之前的某一个版本,则可以在此文件的上层目录右击选show log,点击版本22后,可以看到此版本删除了一个文件(可能还有很多其他的修改)。

选择这个文件的条目,右击选择”revert changes from this revision”,则可恢复此删除的文件。Commit 后形成新的版本,在工作拷贝中可以看到此文件。

(8)Update 更新

  当有人commit了文件时,用户需要update才能看到最新的版本,如图:

Update后会显示出具体哪些文件被更新了,如图:

如要查看以前的版本,可选择update to revision,如下图:

如果输入或者选择版本2,OK后工作拷贝就可以回到版本2,如图:

(9)Show log 查看日志

点击show log 会显示当前目录或文件的历次修改日志信息。如图:

如下图选取“1”版本号,右击选择update item to revision再认证一次,即可在工作拷贝中获取版本为“1”的内容。

(10)Revision Graph 版本图

查看版本分支图,如图:

(11)Import 导入 

   此命令用于上传文件(注:只能上传文件夹)。如果你想把本地的文件或文件夹添加到服务器上的某个目录下面(注意此目录需是空目录),那么在本地的目录处右击TortoisrSVN-import,如下图:

在URL of repository输入要上传到的库的地址,message一定要写,为了将系统默认忽略的文件全部上传到服务器,需要勾选“include ignored files”。

(12)Export 导出

Export: 导出一份干净的目录。所谓“干净的”就是指导出的文件不受SVN的版本控制。默认情况是导出最新版本,也可以指定版本导出。

导出成功。可以看到,不带svn的绿色标记,也没有svn目录,为干净的目录树。

(13)Lock 锁定

锁定操作是一种有效的独占方式保护修改有效性操作;(而SVN不提倡这种锁定开发方式)文件锁定后,只有锁定者才可以对锁定内容修改,其他人员没有权限修改;

操作方法如下

选择一个文件或目录右击,选择TSVN->弹出子菜单的“Get Lock”命令后,弹出锁定对话框,选择要锁定的文件和目录,点击确定。

当另一个人对这两个文件进行了修改,commit时系统会提示文件被锁定了,不能提交。

解锁操作:选择锁定的文件或目录,右击TSVN->选择子菜单“Release Lock”,选定解锁的文件,点击确定。

注意:

当选择一个目录执行加锁或解锁时,也会让你选择文件;

其他用户要对锁定文件进行编辑时,需要执行获取锁定的操作(TSVN->Get lock),并勾选弹出对话框左下脚的复选框(“Steal the lock”);

如上面例子中,文件被锁定,想进行修改,可以偷锁。如下:

右击文件夹或文件,执行TSVN->Get lock,勾选“Steal to lock”,即可获取锁,进行修改提交。

在执行这个操作之前,最好与锁定人沟通,以免混乱。要想知道文件被谁锁定,可以通过check for modification查看

右击目录或文件夹,选TSVN-check for modification,

这里显示的是当前工作拷贝下修改的内容,点击check repository则可以查看整个库中有哪些改动。

可以看到这两个文件被ccadm锁定了。

如果执行一个工作拷贝时,发现报锁定错误时,可能执行SVN Clean命令清除错误;

另外Clean命令也可解决由于服务器问题,一个Subversion指令不能成功地完成,工作副本与库版本不一致的状态和消除文件时间戳不同步问题;

(14)Edit conflicts & Resoved解决合并冲突

当两个人同时编辑一个文件,一个人先提交后,另外一个人提交时会出现冲突,并提出你必须先更新工作拷贝后才可以对这个文件进行修改。

更新工作目录后,在工作目录中可以看到冲突,这时选中第一个文件,右键,在”TortoiseSVN”中选择“Edit conflicts”,这时你就可以出现的冲突的文件进行编辑,选定你最终想要的文档,这就是所谓的“Merge”合并操作。在出现冲突以及应用分支时会经常用到合并的功能。

 合并完成后,执行TortoiseSVN-Resolved,即完成新的修改。执行Commit提交修改,声称新的版本。

(15)Switch 切换

  把你的工作拷贝切换到另外的URL(服务器目录)。服务器目录有所变化,所存储的文件位置发生了变化,那么对你的工作拷贝进行编辑后就会出现提交不上去的情况,这时就要执行switch操作,使你的工作拷贝切换到服务器端对应的目录下面,即可再进行提交。Switch操作只限于版本库内的切换。

(16)Relocate 重新定位

Relocate和Switch的功能基本相同,只能在版本库路径更改时使用,如下:

服务器的IP地址已更改。

协议已更改(比如从http://改为 https://)。

版本库在服务器的路径已更改

当版本库服务器地址和库名称发生变化时,可以用这个命令更新你的工作拷贝。

(17)Blame 追溯

追溯是为了精确地知道谁修改了一个文件中的哪一行。选择文件后右击TortoiseSVN → Blame命令。

如果对早期版本的修改不感兴趣,你可以设置从哪个版本开始追溯。如果你想追溯每一个版本,你可以把那个数值设置为1。

一旦你按了 OK 按钮,TortoiseSVN就开始从版本库获取数据创建追溯文件。注意: 视修改的文件的多少和你的网络连接情况,可能会花掉几分钟到几十分钟不等。追溯过程完成后,其结果将会写到一个临时文件中,你可以读到这个结果文件。

(18)Diff 差异比较

   本地更改和服务器比较:在本地工作拷贝中修改文件后,可以右击此文件,选TSVN-diff,查看修改的内容

与其他分支/标签的比较:右击文件的同时按住Shift键,选TSVN-Diff with URL

输入分支或标签的地址(注意对于文件要指定到文件,不能只指定到目录)。

两个历史版本的比较:查看任意已提交的两个历史版本之间的差异,在show log 日志对话框中选择要比较的两个版本,然后在右键菜单中选“compare revisions”

不同文件的比较

    查看两个不同文件之间的差异,可以直接在资源管理器中选择这两个文件,右键单击,TSVN → diff

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值