3-svn常用操作

1.TortoiseSVN图形化工具使用

  前面使用的都是以命令形式来操作SVN,现在我们来学习一下如何使用图形化工具操作SVN。

  根据你自己的系统选择安装。
这里写图片描述

双击安装TortoiseSVN
这里写图片描述

这里可以选择默认安装路径,也可以自己指定安装路径。然后下一步。
这里写图片描述

安装完成
这里写图片描述

安装完成后,有点鼠标会出现一个小乌龟的图标,如下所示,如果没有,可能需要重新启动一下电脑。
这里写图片描述

现在可以使用图形化方式来创建仓库了,选择一个文件夹创建仓库。
这里写图片描述

点击ok,创建完成的样子如下所示。
这里写图片描述

  注意:如果此路径下已经创建了仓库,会报警告,不允许再创建了。
  假设这么一种情况:张三在此创建了一个仓库,正好公司刚来了个新人李四,然后李四也在此创建了一个仓库,这就导致一个问题,李四创建的仓库把张三的仓库给覆盖了,同时也把张三写的代码也干没了,想一想如果你碰上这种事,是不是感觉很不爽,所以在SVN中这是不允许的。
这里写图片描述

  假设公司招了俩新人张三和李四,分别创建两个文件夹代替,他们进入公司第一件事就是把服务器上的项目代码同步到本地,不管服务器上是否有代码,第一件是就是同步,也就是协同开发。
这里写图片描述

正好李四和张三都在开发同一个项目,也就是CRM项目,所以他们先从服务器上把项目代码同步到本地,也就是检出操作。
点击Checkout。
这里写图片描述

然后会出现Checkout对话框,下面我们来看一下这些都是代表啥意思。
这里写图片描述

进入公司后,一般来说,项目经理会给你分配一个svn用户和密码,还有一个项目模块所在的svn服务器的路径
svn服务器路径格式为:svn协议 + svn服务器ip + 端口号 + 项目代码

svn服务器路径为:svn://localhost:3690/crm
svn:// 表示一个svn协议,格式是固定的
localhost 一般为svn服务器的ip地址,这里svn服务器就是本地电脑,所以填localhost就行
3690 一般svn服务器的端口号默认就是3690
CRM 表示你要检出的项目代码

默认指定的本地路径:D:\SVN\李四

这里我们自己指定为本地路径:D:\SVN\李四\crm,表示把代码检出到李四目录的crm文件下,crm文件夹就是我们的项目代码

点击ok
这里写图片描述

把crm项目检出后信息如图,crm文件夹有一个打钩的绿色图标说明检出成功了,与服务器是同步的。
这里写图片描述

因为此时crm仓库中并没有项目代码,所以检出的crm文件夹中什么也没有,只有一个.svn文件夹,一般来说.svn这个文件默认被隐藏了(可以更改文件夹选项查看),这个文件夹非常重要,用来保存与服务器交互的重要信息,其中包括从服务器端取回的最新版本信息、文件状态、更新时间等。SVN正是以此为依据判断当前目录中文件的状态。

所以这个隐藏目录千万不要删除或修改其中的内容——完全无视它的存在吧。可以理解为服务器端保存的文件可以视为一个“正本”,而每个开发人员检出到本地目录的文件是从正本复制的,通常称为工作副本。
这里写图片描述

注意:如果在进行checkout时,出现Error错误信息时,常见的错误可能是你指定的svn服务器URL路径不对,或者你指定的匿名用户权限不足,也有可能你在创建本地服务化时路径指定的不对,这些都是有可能发生的。
这里写图片描述

现在我们来说一下3690端口是怎么来的呢?
打开cmd,执行netstat -ano命令可以查看3690端口被pid为2372的进程占用
这里写图片描述

打开任务管理器查看pid = 2372的进程,发现是svn服务器程序
这里写图片描述

可能有的同学没有显示pid选项,如果没有显示,点击查看,选择列
这里写图片描述

把pid选项勾上
这里写图片描述

现在我们在李四用户的仓库下创建一个test.c文件,这个蓝色问号的图标表示你创建的这个test文件没有被SVN管理,这时候,你不能把test文件提交到svn服务器,而是先把这个文件添加到svn中,先让svn管理这个文件。

李四完成了一个test功能
这里写图片描述

test.c文件写完后,图标是问号蓝色的,表示文件没有被管理。
这里写图片描述

点击Add选项,让svn管理test文件
这里写图片描述

完成后,test文件图标变成了蓝色加号,这个蓝色加号图标表示这个文件被svn正在管理中,但是没有与服务器同步,也就是说服务器中没有这个文件。
这里写图片描述

我这里把test文件添加到svn中并没有改变test.c文件的图标。
这里写图片描述

但是对test文件右键后出现以下选项,也说明test文件已经加入到svn当中了。
这里写图片描述

然后就是选中文件进行提交,与服务器同步。
这里写图片描述

此时你一提交肯定是会出错的,为什么?
意思就是说,你现在是一个匿名用户,权限不足,无法对svn服务器进行写权限,之前我们能从svn服务器上下载,说明只有读权限。
这里写图片描述

那么我们需要去设置权限问题,由于我们操作的是crm项目,所以我们打开crm项目,找到conf目录下的svnserve.conf文件并打开。
定位到19-20行。
这里写图片描述

这里我们修改匿名用户访问为write,表示匿名用户可读可写,注意,anon-acces前面不能留有空格。
这里写图片描述

修改完之后再次提交即可,不需要重启电脑。
作为一个合格的程序猿,一定要有基本的原则。
这里写图片描述

点击ok,出现以下信息说明提交成功,版本为1。
这里写图片描述

正好李四和张三是同一个项目组的,李四提交完新代码之后,张三在写代码之前,因为他不知道这时候谁修改了代码,所以要先更新,然后再写代码(这是作为一个合格的程序员要养成的好习惯)。
这里写图片描述

张三更新完成,版本1