【软件工程】6.svn的使用

上一次我们成功安装了SVN,并注册了服务。我们的重头戏是使用TortoiseSVN这个客户端工具。它可以做好多事情:增删改查,版本校验、冲突解决等全部都可以解决。

Tortoise介绍:
是SVN的一个图形化界面客户端工具,Tortoise安装(1.7+选择安装命令行端可不再需要安装SVN服务器端,因自带有)
完毕后,继承在鼠标右键菜单中(类似window的一个插件)
【软件工程】6.svn的使用

既然要用客户端,首先要有一个服务端的代码提供给客户端进行操作的。我们需要提交一个代码给SVN服务端(即后台)。
首先我们要给服务器端设置一下权限。
简单介绍一下版本库各个文件夹的作用:
【软件工程】6.svn的使用

我们打开conf,来配置服务端的文件信息:
【软件工程】6.svn的使用

我们打开svnserve.conf修改其中的信息(汉字注释是为了说明,应删去):
【软件工程】6.svn的使用

其中的账号密码就保存在与svnserve.conf同一文件夹的passwd文件中:
【软件工程】6.svn的使用

我们打开passwd,向其中添加几个账号密码:
【软件工程】6.svn的使用

下面我们开启svn服务器:
在控制台输入svnserve -d -r D:\SVNServer\2015_SVN_1
或者直接创建该服务然后双击启动(一定要用管理员身份运行):
【软件工程】6.svn的使用
服务器运行成功:
【软件工程】6.svn的使用

现在要做的就是向服务器中加代码:
步骤1
【软件工程】6.svn的使用
结果:
【软件工程】6.svn的使用

我们在localhost中加入一个文件:
【软件工程】6.svn的使用

我们要把这个文件加入到代码库中去,首先在文件上点击鼠标右键,弹出菜单,选择SVN客户端TortoiseSVN,选择添加Add:
【软件工程】6.svn的使用
然后退出来发现桌面的localhost文件夹的图标已经变成这样:
【软件工程】6.svn的使用

就是说已经有文件添加到代码库中去了,但是还没有提交到服务器进行同步。
然后我们将本地代码提交到服务器:
【软件工程】6.svn的使用

添加注释后提交至服务器:
【软件工程】6.svn的使用

输入我们之前预先设置的账号密码:
【软件工程】6.svn的使用

提交成功:
【软件工程】6.svn的使用

提交成功之后我们的文件变成带绿色对勾的文件,说明本地文件和服务器端文件代码内容是匹配、没有改动的:
【软件工程】6.svn的使用

我们现在看一下版本库是什么情况:
【软件工程】6.svn的使用
之后就可以看到服务器端的版本库中的内容
【软件工程】6.svn的使用
(默认url是svn的,也可以使用http协议)

我们想在服务器版本库查看文件是谁添加的,可以这样做:

【软件工程】6.svn的使用

【软件工程】6.svn的使用

可以清楚的看到是谁在什么时间添加了什么样的文件.

我们修改一下本地的工作进度文件:
【软件工程】6.svn的使用
保存后发现文档的图标变成感叹号,说明和服务器文件内容不一致了。

我们再提交一次(用第二个人的账号模拟),发现提交成功之后版本号变成了2:
【软件工程】6.svn的使用
然后文件图标就变成绿色钩钩了,说明和服务器同步了。
如果服务器端版本库中的文件被删除或者其它情况,我们每次开机之后都要习惯性的在本地代码库中更新一下(即同步本地版本库),看看有没有变化:
【软件工程】6.svn的使用

然后我们谈一下同步的问题:
我们再checkout一个本地版本库,然后更改一下名字,模拟第二个人的本地代码库:
【软件工程】6.svn的使用

然后两个人的进度和内容不一样:
【软件工程】6.svn的使用

我们首先提交localhost的文件,然后再提交localhost2的文件,之后我们看看会不会出问题:
发现我们提交localhost2的文件的时候,提示我们文档过期了,需要我们更新文档之后在提交:
【软件工程】6.svn的使用

于是我们更新一下本地版本库:

【软件工程】6.svn的使用


然后可以看到我们本地的和服务端的文件的区别:
【软件工程】6.svn的使用

因为我们和版本库的数据不一样(同一行的数据不一样,不是新增数据),我们还无法提交数据,所以我们要解决本地版本库与服务器版本库的数据冲突问题:
【软件工程】6.svn的使用
我们可以看到这里的不同数据,需要你修改成同步数据:
【软件工程】6.svn的使用

我们根据语句块选择需要进行的操作:
【软件工程】6.svn的使用

我们让修复bug在前,完成投诉模块在后,最后才测试:
【软件工程】6.svn的使用
然后点击绿色对号完成冲突的解决。

发现我们的localhost2本地版本库的文件已经变成这样:
【软件工程】6.svn的使用

然后我们再次提交之后发现提交成功:
【软件工程】6.svn的使用

然后我们去服务器版本库中去看,发现最终提交的版本是最终整合版:
【软件工程】6.svn的使用

如果两个客户端提交的文件不在同一行数据不同的情况下,svn会自动进行合并。

如果我们修改了文件而且保存退出了之后,我们想恢复到修改之前的情况,可以点击回滚来解决:
【软件工程】6.svn的使用

当然,我们也可以将文件跳至任意一个版本的文件:

【软件工程】6.svn的使用

【软件工程】6.svn的使用


所以想取得任意一个版本的代码都是可以的。

导入新的文件,可以将文件放入一个文件夹中,右键点击文件夹就可以上传文件夹中的文件:

【软件工程】6.svn的使用

【软件工程】6.svn的使用


打开服务器版本库发现我们的文件已经导入:

【软件工程】6.svn的使用


接下来一些常识:
SVN使用图标说明:
【软件工程】6.svn的使用

TSVN的使用基本流程:

【软件工程】6.svn的使用

转载请注明出处:http://blog.****.net/acmman/article/details/50742055