【软件工程】6.svn的使用
上一次我们成功安装了SVN,并注册了服务。我们的重头戏是使用TortoiseSVN这个客户端工具。它可以做好多事情:增删改查,版本校验、冲突解决等全部都可以解决。
Tortoise介绍:
是SVN的一个图形化界面客户端工具,Tortoise安装(1.7+选择安装命令行端可不再需要安装SVN服务器端,因自带有)
完毕后,继承在鼠标右键菜单中(类似window的一个插件)

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

我们打开conf,来配置服务端的文件信息:

我们打开svnserve.conf修改其中的信息(汉字注释是为了说明,应删去):

其中的账号密码就保存在与svnserve.conf同一文件夹的passwd文件中:

我们打开passwd,向其中添加几个账号密码:

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

服务器运行成功:

现在要做的就是向服务器中加代码:
步骤1

结果:

我们在localhost中加入一个文件:

我们要把这个文件加入到代码库中去,首先在文件上点击鼠标右键,弹出菜单,选择SVN客户端TortoiseSVN,选择添加Add:

然后退出来发现桌面的localhost文件夹的图标已经变成这样:

就是说已经有文件添加到代码库中去了,但是还没有提交到服务器进行同步。
然后我们将本地代码提交到服务器:

添加注释后提交至服务器:

输入我们之前预先设置的账号密码:

提交成功:

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

我们现在看一下版本库是什么情况:

之后就可以看到服务器端的版本库中的内容

(默认url是svn的,也可以使用http协议)
我们想在服务器版本库查看文件是谁添加的,可以这样做:
我们修改一下本地的工作进度文件:

保存后发现文档的图标变成感叹号,说明和服务器文件内容不一致了。
我们再提交一次(用第二个人的账号模拟),发现提交成功之后版本号变成了2:

然后文件图标就变成绿色钩钩了,说明和服务器同步了。
如果服务器端版本库中的文件被删除或者其它情况,我们每次开机之后都要习惯性的在本地代码库中更新一下(即同步本地版本库),看看有没有变化:

然后我们谈一下同步的问题:
我们再checkout一个本地版本库,然后更改一下名字,模拟第二个人的本地代码库:

然后两个人的进度和内容不一样:

我们首先提交localhost的文件,然后再提交localhost2的文件,之后我们看看会不会出问题:
发现我们提交localhost2的文件的时候,提示我们文档过期了,需要我们更新文档之后在提交:

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

因为我们和版本库的数据不一样(同一行的数据不一样,不是新增数据),我们还无法提交数据,所以我们要解决本地版本库与服务器版本库的数据冲突问题:

我们可以看到这里的不同数据,需要你修改成同步数据:

我们根据语句块选择需要进行的操作:

我们让修复bug在前,完成投诉模块在后,最后才测试:

然后点击绿色对号完成冲突的解决。
发现我们的localhost2本地版本库的文件已经变成这样:

然后我们再次提交之后发现提交成功:

然后我们去服务器版本库中去看,发现最终提交的版本是最终整合版:

如果两个客户端提交的文件不在同一行数据不同的情况下,svn会自动进行合并。
如果我们修改了文件而且保存退出了之后,我们想恢复到修改之前的情况,可以点击回滚来解决:

当然,我们也可以将文件跳至任意一个版本的文件:
所以想取得任意一个版本的代码都是可以的。
导入新的文件,可以将文件放入一个文件夹中,右键点击文件夹就可以上传文件夹中的文件:
打开服务器版本库发现我们的文件已经导入:
SVN使用图标说明:

TSVN的使用基本流程:
Tortoise介绍:
是SVN的一个图形化界面客户端工具,Tortoise安装(1.7+选择安装命令行端可不再需要安装SVN服务器端,因自带有)
完毕后,继承在鼠标右键菜单中(类似window的一个插件)
既然要用客户端,首先要有一个服务端的代码提供给客户端进行操作的。我们需要提交一个代码给SVN服务端(即后台)。
首先我们要给服务器端设置一下权限。
简单介绍一下版本库各个文件夹的作用:
我们打开conf,来配置服务端的文件信息:
我们打开svnserve.conf修改其中的信息(汉字注释是为了说明,应删去):
其中的账号密码就保存在与svnserve.conf同一文件夹的passwd文件中:
我们打开passwd,向其中添加几个账号密码:
下面我们开启svn服务器:
在控制台输入svnserve -d -r D:\SVNServer\2015_SVN_1
或者直接创建该服务然后双击启动(一定要用管理员身份运行):
服务器运行成功:
现在要做的就是向服务器中加代码:
步骤1
结果:
我们在localhost中加入一个文件:
我们要把这个文件加入到代码库中去,首先在文件上点击鼠标右键,弹出菜单,选择SVN客户端TortoiseSVN,选择添加Add:
然后退出来发现桌面的localhost文件夹的图标已经变成这样:
就是说已经有文件添加到代码库中去了,但是还没有提交到服务器进行同步。
然后我们将本地代码提交到服务器:
添加注释后提交至服务器:
输入我们之前预先设置的账号密码:
提交成功:
提交成功之后我们的文件变成带绿色对勾的文件,说明本地文件和服务器端文件代码内容是匹配、没有改动的:
我们现在看一下版本库是什么情况:
之后就可以看到服务器端的版本库中的内容
(默认url是svn的,也可以使用http协议)
我们想在服务器版本库查看文件是谁添加的,可以这样做:
我们修改一下本地的工作进度文件:
保存后发现文档的图标变成感叹号,说明和服务器文件内容不一致了。
我们再提交一次(用第二个人的账号模拟),发现提交成功之后版本号变成了2:
然后文件图标就变成绿色钩钩了,说明和服务器同步了。
如果服务器端版本库中的文件被删除或者其它情况,我们每次开机之后都要习惯性的在本地代码库中更新一下(即同步本地版本库),看看有没有变化:
然后我们谈一下同步的问题:
我们再checkout一个本地版本库,然后更改一下名字,模拟第二个人的本地代码库:
然后两个人的进度和内容不一样:
我们首先提交localhost的文件,然后再提交localhost2的文件,之后我们看看会不会出问题:
发现我们提交localhost2的文件的时候,提示我们文档过期了,需要我们更新文档之后在提交:
于是我们更新一下本地版本库:
因为我们和版本库的数据不一样(同一行的数据不一样,不是新增数据),我们还无法提交数据,所以我们要解决本地版本库与服务器版本库的数据冲突问题:
我们可以看到这里的不同数据,需要你修改成同步数据:
我们根据语句块选择需要进行的操作:
我们让修复bug在前,完成投诉模块在后,最后才测试:
然后点击绿色对号完成冲突的解决。
发现我们的localhost2本地版本库的文件已经变成这样:
然后我们再次提交之后发现提交成功:
然后我们去服务器版本库中去看,发现最终提交的版本是最终整合版:
如果两个客户端提交的文件不在同一行数据不同的情况下,svn会自动进行合并。
如果我们修改了文件而且保存退出了之后,我们想恢复到修改之前的情况,可以点击回滚来解决:
当然,我们也可以将文件跳至任意一个版本的文件:
所以想取得任意一个版本的代码都是可以的。
导入新的文件,可以将文件放入一个文件夹中,右键点击文件夹就可以上传文件夹中的文件:
打开服务器版本库发现我们的文件已经导入:
SVN使用图标说明:
TSVN的使用基本流程:
转载请注明出处:http://blog.****.net/acmman/article/details/50742055