TortoiseSVN的简单介绍

SVN = 版本控制 + 备份服务器。可以把SVN当成备份服务器,更好的是,他可以记住每次上传到这个服务器的文件内容,并自动的赋予每次的变更一个版本。

TortoiseSVN

工具清单里面提到了SVN主要是用于作用版本控制的,第一个就联想到了我现在日常使用的版本控制器:Team Foundation Server (缩写: TFS )。这也是一个进行版本控制和协同开发的常用工具。由于之前只接触过TFS(现在也是每天在用),所以SVN是新工具,但是他们有很多共同之处,所以下面我将以类比的方式来介绍下SVN的日常使用。

一、SVN的介绍

SVN是为了提高协同开发效率,在项目开发中进行源代码管理、版本控制、文档共享等功能。它可以在SVN服务器上为我们维护所有源代码的每一个版本,安装在windows下的SVN可以在windows资源管理器中右键看到它,如文章开头处的截图一样。

对于一个团队,SVN的源码管理及版本控制带来这些好处:

1. 可多人同时开发同一项目,甚至更改同一个文件;

2. 开发人员每天(或按照阶段性目标)使用 “ check in ” 操作,将今天修改的源代码自动上传到开发机服务器;

3. 其它开发人员使用 “ 同步 ” 功能即可将开发机上最新代码同步至本机,无须人肉逐个 Q 传文件;

4. 可定时在开发机上编译并自动化部署到线上机器;

5. 可随时把开发机上的版本回滚为任意一个历史版本;

6. 可以查看每个人的每一次 “ check in ” 与 “ check out” ,可比较任意两个版本的代码差异,方便查看。

二、SVN的下载和安装。

1、官方下载地址:http://tortoisesvn.net/downloads.html 注意选择32bit or 64bit。

TortoiseSVN下载

2、接着下载中文包:http://tortoisesvn.net/translator_credits.html

TortoiseSVN语言包下载

3、安装就和普通的程序安装一样,语言包是安装完成后再安装的。

三、具体使用和简单介绍

1、安装完成TortoiseSVN后,会发现文件夹图标被重载,不同的重载图标所表示不同的意义。所有的TortoiseSVN命令都是通过windows资源管理器的右键菜单执行。右键打开windows资源管理器菜单就可以看到。下面以sinaapp提供的SVN服务器做为演示。

2、登录你的开发机服务器。

右键菜单中选择“SVN 检出(K)…”,即check out。可以将服务器上的代码下载下来。

检出代码

弹出登录框,输入服务器的用户名和密码。

 

3、检出代码(check out)。

填写服务器地址和你本地希望代码存放的文件夹。同时你也可以选择版本号,选择单个文件或某个文件夹进行check out。一般第一次都是将你负责的代码check out即可。

检出代码

正在check out代码,可以看到,TortoiseSVN是通过命令提交的方式给服务器的,我们也知道TortoiseSVN是有Linux版本的,所以可以猜想在Linux下使用TortoiseSVN的一些命令,当然你先得使用英文版的SVN了。
检出代码

check out完毕,可以看到你的文件夹的图标有了一个勾,没关系,以后还会看到更多的符号。

检出文件夹

SVN能进行版本控制就是因为在这个文件夹里面有个隐藏文件.svn。它加上了“.”说明在Linux下也是隐藏的,倘若你不想这个文件夹进行版本控制了,就手动删掉这个文件夹即可。

检出文件夹

4、进行开发。

完成了check out就可以在本地进行开发了,一旦这些文件被添加、修改、删除、改名、移动、替换等操作引起文件md5值不同,SVN会自动以不加锁的方式检出修改的文件,而且该文件的图标由勾变成了感叹号。

修改的文件图标

具体的图标的意思可以在这里看到:右键“TortoiseSVN”->“设置”->“图标集”。

图标含义
5、提交代码(check in)。

当你进行了一天的开发后,应该及时将代码(及其它文件变更)都提交到开发机上,避免本地文件丢失(或笔记本遗失、损坏等不测因素)造成严重后果。提交时SVN会自动识别出那些文件做了更改,你也可以人肉勾选其中一部分进行提交。

提交

新增的文件若没有执行增加操作,都会显示“无版本控制”状态,SVN默认是不会勾选它进行提交。每个文件都有自己的版本号,每次提交都会使文件产生一个新的版本号,可以查看所有历史版本或查看任意两个版本的差别。

每一次提交需要养成良好的习惯,即写上提交的信息,这样方便日后版本查看和回滚。每一次开始修改文件最好先更新一下这个文件,避免在提交时有文件冲突。

6、文件冲突(conflict)。

出现文件冲突是在你在提交某个文件正好被某个人修改了且提交了(即文件的副本和最新的不一致),服务器不能识别应该保存哪个版本时。

提交冲突

解决冲突:先升级本地工作副本,即获取到现在服务器上这个文件的最新版本。

升级工作副本

解决冲突

这个时候点击“显示日志”就可以看到是谁在什么时候提交了上一个版本。从信息中可以大致看出是做了什么修改,这都要基于平时提交时有写日志的习惯。

文件夹中多了单个文件:footer.php.mine,footer.php.r205和footer.php.r206 。从命名中就很容易看出这三个文件的含义:.mine是本地编辑后的文件版本,.204是你在编辑前更新的工作副本,.205是服务器上最新的文件。

冲突产生的文件

对footer.php右键选择“编辑冲突”,弹出著名的TortoiseMerge,其实也可以用WinMerge来完成。

TortoiseMerge

可以看到冲突的地方,左边是服务器上的文件,右边是本地的文件,下边是合并的文件。右键选择好保存即可。

TortoiseMerge

TortoiseMerge

保存好之后,再footer.php右键选择“已解决的”。

已解决冲突已解决冲突

最后一步,提交解决冲突后的footer.php。可以看到版本号为207了。文件夹的冲突也是类似这样处理,这里就不在赘述了。

提交代码

四、结语。

TortoiseSVN的功能远不止上面介绍的这些,还有些可以类比使用,这些也可以满足日常比较常用的操作了。

更多详细信息可以参考TortoiseSVN中文手册
nn1