软件配置实验2

软件配置实验2

一. 实验目的
(1)模拟串行修改和并行修改。
(2)发现文件冲突与树冲突及解决冲突。
二.实验任务及要求
(1)态度认真,独立完成,理解软件配置管理的重要性。
三.实验内容

第1步,首先在D盘建立一个文件夹,命名为“个人工作间2”,进入文件夹,在空白处右键 SVN checkout ,此时就会弹出填写URL的窗口,我们输入 file:///D:/SVN(通常只有一个版本库的话是默认输入,直接点击OK就可以了),即建立了工作目录与server的关联,关联成功标志是你的个人工作间上有个绿色的对号,内部的文件也有绿色的对号。注:我们原来以创建了“个人工作间”,这里又创建一个“个人工作间2”可以模拟串行和并行修改。
在这里插入图片描述

第2步,模拟并行修改,在“个人工作间”中修改在名为“并行”的txt文件中(我的个人工作间和版本库中有这个文件,没有的自己在“个人工作间”创建一个),修改内容后保存,然后再使用SVN commit提交就可以了。提交成功如图所示。
在这里插入图片描述

接下来我们去“个人工作间2”中修改与个人工作间中相同的同一个名为”并行“的这个文件,修改内容后保存,然后使用在工作目录中的使用SVN commit提交就可以了。
在这里插入图片描述

此时,你会发现文件冲突出现了。在“个人工作间2”对文件的修改出现了错误,错误内容为“个人工作间2”中名为“并行“的文件过时了。说明拿到的不是版本库最新的文件,应该使用Update更新一下版本库中最新的版本到个人工作间后再修改。

在这里插入图片描述
在这里插入图片描述
当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改时就会发生树冲突。有很多种不同的情形可以导致树冲突,而且不同的情形需 要不同的步骤来解决冲突。接下来,我们模拟一下并行修改的树冲突,首先我们先就看一下我的“个人工作间中“与”个人工作间2“中的项目文件如下,现在我们对共同的文件”HelloWorld“进行重命名,模拟两个不同的个人对同一个文件进行进行重命名而引发的树冲突。
在这里插入图片描述

接下来,我们将“个人工作间“中的”HelloWorld“修改为”Dream“,重命名后保存,然后再使用SVN commit提交就可以了。提交成功如图所示。
在这里插入图片描述

接下来我们将“个人工作间2“中的”HelloWorld“修改为”MyDream“,重命名后保存,然后再使用SVN commit提交,修改后,可以提交,但是会出现”个人工作间“与”个人工作间2“出现红色感叹号。
在这里插入图片描述

需要注意的是:可以注意一下三个图标:
在这里插入图片描述
第3步,模拟串行修改,串行修改,就是在一个开发人员完成修改后,另一个开发人员在其基础之上继续修改,首先我们在“个人工作间“中将“HelloWorld“上锁,此时,其他人员是不能修改此文件的,上锁就是使用toitorseSVN中的Get lock,将文件锁住。此时,仅有在”个人工作间“的开发人员有权利修改此文件,我们在”个人工作间2“中修改这个文件试试,修改“HelloWorld“文件后保存,使用SVN commit提交后会报错,错误提示如下图所示,错误信息为”个人工作间2“的开发人员不能修改被”个人工作间“的开发人员锁住的文件,必须等到”个人工作间“的开发人员修改完并解锁后,才可以进行修改,也就是所谓的串行修改。
在这里插入图片描述
下面我们正式模拟一下串行修改,首先我们在“个人工作间“中使用toitorse SVN中的Get lock,将文件锁住,锁住后,我们会看到,原来的位置的get lock,变成了Release lock,如下图,说明上锁成功,现在我们修改这个文件的内容,修改后的内容如下图,修改后保存,使用SVN commit提交到版本库。

在这里插入图片描述
在这里插入图片描述

提交到版本库成功后,软件会自动解锁,默认你修改完毕,接下来,我们在“个人工作间2“中使用SVN update,将”个人工作间“中开发人员提交到版本库中的最新版本,更新到”个人工作间2“,由”个人工作间2“的开发人员继续修改,修改之前先上锁,防止自己修改期间其他人员修改,在“个人工作间2“中使用toitorse SVN中的Get lock,将”Helloworld“文件锁住,然后修改完成后,使用SVN commit提交到版本库就可以了。
至此,一个由两人组成的简单串行修改就完成了。

扫描二维码关注公众号,回复: 11238639 查看本文章

第4步,解决方案,解决冲突,串行是不存在冲突的,只有并行修改存在冲突,对于并行修改中出现的冲突,可以才采用如下解决方案,第一,及时更新个人工作间,保证个人工作间得到的为最新的版本。第二,差异比较,如果修改了很多,可以采取合并版本,合并后提交到版本库。第三,可以变并行为串行,降低效率减少冲突。第四,每次修改一个小的模块就提交到版本库,而不是最后统一提交。
实验小结
没有良好的理论基础,空谈动手能力,就是典型的耍流氓,搓键盘没人不会,无理解,无思考,无创新,何谈动手!!!
写完这篇博客,博主要去搬砖了,工地见!

如果需要自主学习tortoiseSVN,博主给各位提供几个网址,可以参考这里:

戳一下这里查看
再戳一下这里查看
再戳一下这里查看

猜你喜欢

转载自blog.csdn.net/nuist_NJUPT/article/details/106238750