《SVN宇宙版教程》:第七章 Subclipse更新与深度

第七章 Subclipse更新与深度

导言:

Subclipse插件也提供Update的功能,在本章中也会用大量的篇幅介绍Update与Depth的关系,通过阅读此章节会对它们的关系理解的更加透彻,能对Update过程中的细节把控的更加得心应手。

7.1 更新Update与Depth深度

    菜单Update to Version的作用是将资源更新到指定的版本。

7.1.1 创建实验环境

Step01:创建全新的实验仓库,名称是test。

Step02:然后在MyEclipse中创建1个名称是test的web项目,并让web项目关联test仓库,关联后将空的web项目提交到test仓库中,如图7.1所示。

图7.1 将空web提交到test仓库中Revision是2

 

    Step03:创建A1.java文件,并提交,效果如图7.2所示。

图7.2 提交A1.java文件Revision值是3

 

    Step04:更改A1.java并添加A2.java文件,提交后的效果如图7.3所示。

图7.3 提交的Revision值是4

 

    Step05:更改A1.java和A2.java及添加A3.java文件提交后的效果如图7.4所示。

图7.4 提交的Revision值是5

 

    Step06:更改A3.java文件及创建B1.java文件,效果如图7.5所示。

图7.5 提交的Revision值是6

 

    Step07:更改A3.java和B1.java及添加B2.java文件,效果如图7.6所示。

图7.6 提交的Revision值是7

 

    Step08:更改B2.java及添加B3.java文件,效果如图7.7所示。

图7.7 提交的Revision值是8

 

    Step09:更改B2.java及B3.java文件和删除A3文件,效果如图7.8所示。

图7.8 提交的Revision值是9

 

    Step10:更改B2.java及B3.java文件,效果如图7.9所示。

图7.9 提交的Revision值是10

 

    实验环境搭建完毕,请将仓库test及web项目test进行备份,在后面的实验中还会使用到。

7.1.2 对文件版本变更不影响其它文件及文件夹

    现在的项目文件结构如图7.10所示。

图7.10 当前项目文件夹结构及版本号

 

    Step01:对A1.java文件调用“Update to Version”菜单,效果如图7.11所示。

图7.11 对A1.java文件调用Update to Version菜单

 

    Step02:设置弹出界面配置如图7.12所示。

图7.12 将A1.java文件更新到Revision值是3的版本

 

    在“Update Resources”界面中有“Conflict handling”选项,下面有3个子选项“Text files”文本文件和“Binary files”二进制文件和“Property conflicts”属性冲突,这些选项的作用就是在Update指定到某一个版本时如果出现内容上的冲突应该如何处理,在这里都使用“Mark conflicts, let me resolve them later”选项,也就是出现冲突时保留冲突,以待在后面再解决。

    Step03:单击OK按钮后的项目结构如图7.13所示。

图7.13 成功将A1.java更新到Revision是3的版本

 

    而其它文件及文件夹的内容并没有变更,说明对文件调用“Update to Version”菜单并不影响其它文件及文件夹中的内容,仅仅对当前文件起作用。

7.1.3 对文件版本变更时深度Depth时被忽略

    Step01:对web项目test调用“更新”菜单,以将所有的内容更新到最新版,继续对A1.java文件调用“Update to Version”菜单,弹出界面配置如图7.14所示。

图7.14 将A1.java更新到Revision是4的版本

 

    Step02:在此界面中Depth深度值选择“Fully recursive”满树更新,单击OK按钮后的项目文件夹结构如图7.15所示。

图7.15 深度值被忽略并只更新了A1.java文件

 

7.1.4 对文件夹设置更新深度Depth时有效

    Step01:对web项目test调用“更新”菜单,以将所有的内容更新到最新版,继续对a包调用“Update to Version”菜单,弹出界面配置如图7.16所示。

图7.16 将a包中的内容更新到Revision是4的版本

 

    Step02:在此界面中Depth深度值选择“Fully recursive”满树更新,单击OK按钮后的项目文件夹结构如图7.17所示。

图7.17 包a中的所有内容被更新到Revision是4的版本

 

    其实src节点或a包或WebRoot结点在硬盘中其实都是以文件夹的形式进行存在,效果如图7.18所示。

图7.18 项目在硬盘中其实就是文件夹

 

    更新深度Depth值的设置其实和TortoiseSVN的设置与效果是一样的。

7.1.5 深度Depth值的重复研究-Working copy

    Step01:对web项目test调用“更新”菜单,以将所有的内容更新到最新版,效果如图7.19所示。

图7.19 项目整体更新到最新版

 

再次查看MyEclipse中的test项目在硬盘文件夹的深度属性是,说明test项目默认的更新深度值是全部更新。

    Step02:对src节点调用“Update to Version”菜单,配置界面如图7.20所示。

图7.20 使用Working copy更新到Revision是4的版本

 

    在配置界面中将Depth设置成“Working copy”含义是使用test文件夹的深度值,也就是Fully recursive,更具体来讲就是将当前操作的文件夹中的内容,也就是子或子孙内容更新到某一个版本。

    Step03:单击OK按钮后的web项目文件夹结构如图7.21所示。

图7.21 全部Revision都是4

 

    Step04:而仓库test中Revision的版本内容如图7.22所示。

图7.22 仓库中Revision和MyEclipse中的内容一致

 

7.1.6 深度Depth值的重复研究-Fully recursive

    Step01:对web项目test调用“更新”菜单,以将所有的内容更新到最新版,效果如图7.23所示。

图7.23 项目整体更新到最新版

 

    Step02:对src节点调用“Update to Version”菜单,配置界面如图7.24所示。

图7.24 使用Fully recursive更新到Revision是4的版本

 

    在配置界面中将Depth设置成“Fully recursive”含义是使用Fully recursive深度值,也就是将当前操作的文件夹中的内容(子或子孙内容)更新到某一个版本。

    Step03:单击OK按钮后的web项目文件夹结构和仓库中的内容如图7.25所示。

图7.25 MyEclipse中的内容和仓库中指定版本的内容一样

 

7.1.7 深度Depth值的重复研究-Immediate children,including folders

    Step01:对web项目test调用“更新”菜单,以将所有的内容更新到最新版,效果如图7.26所示。

图7.26 项目整体更新到最新版

 

    Step02:对src右键属性查看一下src的版本号,如图7.27所示。

图7.27 文件夹src是最新版Revision值是10

 

    Step03:对src节点调用“Update to Version”菜单,配置界面如图7.28所示。

图7.28 使用Immediate children,including folders更新到Revision是4的版本

 

    在配置界面中将Depth设置成“Immediate children,including folders”含义是将当前操作的文件夹中的子文件或子文件夹,但不包括子孙级的资源,更新到某一个版本。

    Step04:单击OK按钮后src的版本号是4,如图7.29所示。

图7.29 文件夹src的版本号是4

 

    Step05:而src的子资源a包的版本号也是4,如图7.30所示。

图7.30 src子资源a包版本也是4

 

    Step06:但src的子孙资源b包版本号还是10,如图7.31所示。

图7.31 使用Immediate children,including folders更新时子孙资源并未受影响

 

7.1.8 深度Depth值的重复研究-Only file children

    Step01:对web项目test调用“更新”菜单,以将所有的内容更新到最新版,效果如图7.32所示。

图7.32 项目整体更新到最新版

 

    Step02:对a包节点调用“Update to Version”菜单,配置界面如图7.33所示。

图7.33 使用Immediate children,including folders更新到Revision是4的版本

 

    在配置界面中将Depth设置成“Only file children”含义是将当前操作的文件夹中的子文件,不包括子孙级的资源,更新到某一个版本。

    Step03:单击OK按钮后a包中的子文件A1.java和A2.java的版本号是4,如图7.34所示。

图7.34 仅仅更新了子文件

 

7.1.9 深度Depth值的重复研究-Only this item

    Step01:对web项目test调用“更新”菜单,以将所有的内容更新到最新版,效果如图7.35所示。

图7.35 项目整体更新到最新版

 

    Step02:查看一下a包的版本如图7.36所示。

图7.36 查看a包的版本是10

 

   Step03: 对a包节点调用“Update to Version”菜单,配置界面如图7.37所示。

图7.37 使用Only this item更新到Revision是4的版本

 

    在配置界面中将Depth设置成“Only this item”含义是将当前操作的文件夹或文件本身更新到某一个版本。

    Step04:单击OK按钮后a包的版本号是4,如图7.38所示。

图7.38 包a的版本被更新为4

 

    Step05:而b包的版本还是10,未被改变,效果如图7.39所示。

图7.39 包b的版本还是10未被改变

 

7.1.10 深度Depth值的重复研究-Exclude

    Step01:对web项目test调用“更新”菜单,以将所有的内容更新到最新版,效果如图7.40所示。

图7.40 项目整体更新到最新版

 

    Step02:单词Exclude是排除的含义,所以想对A2.java进行排除,对A2.java文件调用“Update to Version”菜单,配置界面如图7.41所示。

图7.41 对A2.java进行排除

 

   Step03:单击OK按钮后A2.java文件消失了,如图7.42所示。

图7.42 文件A2.java消失了

 

    有排除就有反排除,反排除的操作就是由桌面test文件夹对其单击右键菜单Repo-browser进入仓库浏览界面后,对A2.java文件调用“Update item to revision”菜单重新下载到本地即可。如果是使用MyEclipse工具使用“SVN检出”菜单将仓库中的内容导入到MyEclipse时,可以找到MyEclipse项目在硬盘上的文件夹,执行“Repo-browser”菜单进入,再执行“Update item to revision”菜单重新下载到本地即可。

7.1.11 选项Allow unversioned obstructions

对A2.java文件执行反排除的操作,再对web项目test调用“更新”菜单,以将所有的内容更新到最新版。

选项“Allow unversioned obstructions”的作用是如果本地有一个无版本的文件夹或文件,那么当更新时,如何对待本地的这个无版本的文件夹和文件。

7.1.11.1 选项Allow unversioned obstructions复选

Step01:继续复用前面章节中MyEclipse里面的test项目,并且将整个项目更新到最新版,效果如图7.43所示。

图7.43 更新到最新版

 

    Step02:继续操作,将路径file:///C:/svn_repository/test/trunk导出Checkout到C:\Documents and Settings\Administrator\桌面\test22路径中,然后新开启一个新的MyEclipse,别名为MyEclipse2,将test22项目导入到MyEclipse22软件中。

    注意,后面的实验有分支,所以将MyEclipse1和MyEclipse2中的项目和test仓库备份到其它位置。

Step03:然后在MyEclipse2的a包下面创建Z.java文件,效果如图7.44所示。

图7.44 在MyEclipse2的a包下面创建Z.java文件

 

Step04:然后将MyEclipse2中的内容进行commit提交操作,提交的结果如图7.45所示。

图7.45 成功提交MyEclipse2中的Z.java文件

 

Step05:然后回到MyEclipse1软件中,也在a包下创建1个名称为Z.java的文件,效果如图7.46所示。

图7.46 MyEclipse1中也创建Z.java文件

 

    Step06:这时对MyEclipse1中的src调用“Update to Version”菜单,将src中的内容更新到最新版,配置如图7.47所示。

图7.47 选项Allow unversioned obstructions复选了

 

    Step07:单击OK按钮后的项目文件夹结构如图7.48所示。

图7.48 复选是使用本地的版本状态为已更改

 

    说明MyEclipse1中新建的Z.java文件使用了是“服务器端仓库中Z.java文件的状态”,而内容却是MyEclipse1Z.java文件的内容,这和直接点击“更新”菜单带来的效果是一样的,读者可以在此做一个实验。

    Step08:找到MyEclipse1软件中test项目在硬盘中存储的文件夹,然后调用“Check for modifications”菜单,弹出界面如图7.49所示。

图7.49 复选即是保留MyEclipse1中文件的内容

 

    Step09:这时将MyEclipse1中的内容进行提交,结果如图7.50所示。

图7.50 仓库中的内容和MyEclipse1中的内容一样

 

7.1.11.2 选项Allow unversioned obstructions不复选-Mark conflict resolved选项

Step01:初始化环境,将备份的test项目及test仓库各就各位,然后再将项目分别导入到MyEclipse1和MyEclipse2软件中。

Step02:并且将整个项目更新到最新版,效果如图7.51所示。

图7.51 更新到最新版

 

Step03:在MyEclipse2的a包下面创建Z.java文件,效果如图7.52所示。

图7.52 在MyEclipse2的a包下面创建Z.java文件

 

Step04:然后将MyEclipse2中的内容进行commit提交操作,提交的结果如图7.53所示。

图7.53 成功提交MyEclipse2中的Z.java文件

 

Step05:然后回到MyEclipse1软件中,也在a包下创建1个名称为Z.java的文件,效果如图7.54所示。

图7.54 MyEclipse1中也创建Z.java文件

 

    Step06:这时对MyEclipse1中的src调用“Update to Version”菜单,将src中的内容更新到最新版,配置如图7.55所示。

图7.55 选项Allow unversioned obstructions不复选

 

    Step07:单击OK按钮后的项目文件夹结构如图7.56所示。

图7.56 未复选出现冲突了

 

Step08:现在的情况是本地有一个无版本的Z.java,而服务器中已经存在一个Z.java文件了,这时就出现冲突了,因为Subclipse不知道使用哪个版本的Z.java文件。可以找到MyEclipse1软件中test项目在硬盘中存储的文件夹,然后调用“Check for modifications”菜单,弹出界面如图7.57所示。

图7.57 出现树冲突了

 

    Step09:有冲突就要解决,对MyEclipse1中的Z.java文件调用“标记为解决”菜单,弹出配置界面如图7.58所示。

图7.58 使用Mark conflict resolved解决冲突

 

    Step10:使用“Mark conflict resolved”选项意味着使用MyEclipse1中的Z.java文件中的内容做为解决冲突的最终版本,单击Finish按钮后的效果如图7.59所示。

图7.59 图标变红差

 

    Step11:再次查看MyEclipse1中的test项目的状态如图7.60所示。

图7.60 文件Z.java呈删除状态

 

    Step12:这时将MyEclipse1中的内容进行提交,结果如图7.61所示。

图7.61 文件Z.java呈问号状态

 

    Step13:从仓库的日志中可以发现,删除了仓库中的Z.java文件,如图7.62所示。

图7.62 将仓库Z.java文件删除了使用本地的版本

 

    Step14:然后再次将MyEclipse1中的代码进行提交,效果如图7.63所示。

图7.63 MyEclipse1中的内容成为仓库中的最新版

 

    通过此实验可以总结出知识点,当调用“Update to Version”菜单时Allow unversioned obstructions选项不复选,并且选择Mark conflict resolved选项时,是使用MyEclipse1本地的Z.java版本提交到仓库中。

7.1.11.3 选项Allow unversioned obstructions不复选-Revert选项

Step01:初始化环境,将备份的test项目及test仓库各就各位,然后再将项目分别导入到MyEclipse1和MyEclipse2软件中。

Step02:并且将整个项目更新到最新版,效果如图7.64所示。

图7.64 更新到最新版

 

Step03:在MyEclipse2的a包下面创建Z.java文件,效果如图7.65所示。

图7.65 在MyEclipse2的a包下面创建Z.java文件

 

Step04:然后将MyEclipse2中的内容进行commit提交操作,提交的结果如图7.66所示。

图7.66 成功提交MyEclipse2中的Z.java文件

 

Step05:然后回到MyEclipse1软件中,也在a包下创建1个名称为Z.java的文件,效果如图7.67所示。

图7.67 MyEclipse1中也创建Z.java文件

 

    Step06:这时对MyEclipse1中的src调用“Update to Version”菜单,将src中的内容更新到最新版,配置如图7.68所示。

图7.68 选项Allow unversioned obstructions不复选

 

    Step07:单击OK按钮后的项目文件夹结构如图7.69所示。

图7.69 未复选出现冲突了

 

Step08:现在的情况是本地有一个无版本的Z.java,而服务器中已经存在一个Z.java文件了,这时就出现冲突了,因为Subclipse不知道使用哪个版本的Z.java文件。可以找到MyEclipse1软件中test项目在硬盘中存储的文件夹,然后调用“Check for modifications”菜单,弹出界面如图7.70所示。

图7.70 出现树冲突了

 

    Step09:有冲突就要解决,对MyEclipse1中的Z.java文件调用“标记为解决”菜单,弹出配置界面如图7.71所示。

图7.71 使用Revert选项解决冲突

 

    Step10:使用“Revert”选项意味着使用仓库中的内容做为解决冲突的最终版本,单击Finish按钮后的效果如图7.72所示。

图7.72 MyEclipse1中的内容和仓库一样

 

通过此实验可以总结出知识点,当调用“Update to Version”菜单时Allow unversioned obstructions选项不复选,并且选择Revert选项时,将MyEclipse1中的内容替换成仓库中的内容。

通过此实验可以得出结论,当2个程序员AB在同一个位置创建出相同的文件名时,当A程序员调用“更新”菜单和调用“Update to Version”菜单时Allow unversioned obstructions选项复选是一样的效果,都是将A程序员创建的文件更改成“星号*修改”状态,文件内容使用的是A程序员的内容,这将造成B程序员写的代码被完全忽略,造成代码的丢失。

那么正确的“更新到最新版代码”的做法是,调用“Update to Version”菜单时Allow unversioned obstructions选项不复选,这样会出现“双箭头”,至少给A程序员一个提示,出现了冲突,却不是A程序员创建的文件内容全部使用A和或使用B的,完全可以有机会进行手动编辑,这处也是非常重要的知识点,虽然在工作中不经常出现,但一旦出现就会造成极大的损失。

7.1.12 选项Ignore externals

    选项Ignore externals的作用和在TortoiseSVN中一样,都是在更新时是否也一同更新引用仓库中的内容。

    Step01:创建实验用的新仓库a和b,然后在MyEclipse中创建名称为a和b的2个web项目,在b项目中添加2个html文件,效果如图7.73所示。

图7.73 在b项目中添加文件及配置b项目到仓库

 

    Step02:对b项目进行提交,效果如图7.74所示。

图7.74 对b项目提交后2个html文件的Revision值是2

 

Step03:设置a项目关联仓库,配置如图7.75所示。

图7.75 配置a项目引用仓库

 

    Step04:项目a关联完仓库a后对名称为a的web项目进行Commit提交。

    Step05:然后对a项目中的WebRoot节点调用“设置属性…”菜单如图7.76所示。

图7.76 对a项目的WebRoot结点设置属性

 

    Step06:属性设置内容如图7.77所示。

图7.77 设置svn:externals属性

 

    Step07:文件夹a_manager是在a项目中使用此文件夹来引用b项目b_manager文件夹中的内容,单击OK按钮后,WebRoot结点的图标变成星号,如图7.78所示。

图7.78 WebRoot文件夹图标变成星号

 

    Step08:使用TortoiseSVN对a项目存放在硬盘的文件夹调用“Check for modifications”菜单后的效果如图7.79所示。

图7.79 文件夹属性发生变化

 

     Step09:继续操作,将a项目进行提交。

     Step10:对a项目调用“Update to Version…”菜单,弹出对话框配置选项如图7.80所示。

图7.80 使用默认配置Ignore externals不复选选

 

    Step11:单击OK按钮后a项目的a_manager文件夹出现2个html文件,版本Revision和b项目中的一样,效果如图7.81所示。

图7.81 项目a出现2个html文件

 

Step12:继续操作,更改b项目中的html文件并提交,效果如图7.82所示。

图7.82 项目b中的html文件最新Revision值是3

 

    Step13:再对a项目调用菜单“Update to Version…”,配置如图7.83所示

图7.83 选项Ignore externals勾选

 

    Step14:单击OK按钮后a项目中的内容如图7.84所示

图7.84 项目a中的2个html版本未改变

 

Step15:再对a项目调用菜单“Update to Version…”,配置界面如图7.85所示。

图7.85 选项Ignore externals不复选

 

    Step16:单击OK按钮后的效果如图7.86所示。

图7.86 项目a中的2个html文件成功更新到Revision值是3的版本

 

7.1.13 选项Depth和Change working copy to specified depth

    Step01:创建测试用的web项目,名称是c,再创建名称是c的仓库,将web项目关联c仓库,并将web项目提交到c仓库中,web项目c默认的更新深度Update Depth值如图7.87所示。

图7.87 更新深度值是Fully recursive

 

    Step02:创建A.java和B.java文件,设置初始内容及提交,如图7.88所示。

图7.88 初始内容及Revision版本是3

 

    Step03:更改A.java和B.java文件内容及提交,如图7.89所示。

图7.89 提交更改内容及Revision版本是4

 

    Step04:更改A.java和B.java文件内容及提交,如图7.90所示。

图7.90 提交更改内容及Revision版本是5

 

    Step05:继续操作,创建类文件C.java,设置初始内容效果如图7.91所示。

图7.91 创建并提交文件C.java

 

    对C.java文件提交后Revision的值是6。

    Step06:继续操作,更改类文件C.java内容并提交,效果如图7.92所示。

图7.92 提交更改内容及Revision版本是7

7.1.13.1 选项Change working copy to specified depth未复选与Immediate children,including folders的测试

开发工具MyEclipse中的c项目中的a包的深度值如图7.93所示。

图7.93 包a的深度值是Fully recursive

 

    Step01:对web项目c中的a包调用“Update to Version…”菜单,配置选项如图7.94所示。

图7.94 配置界面

 

    Step02:在配置界面中选项Change working copy to specified depth未复选的含义是不改变包a的深度值,仅仅改变包a中内容的Revision版本号。

    Step03:单击OK按钮后的效果如图7.95所示。

图7.95 Revision值是4的版本内容

 

从“包浏览器”面板中可以看到,文件A.java的Revision版本号被设置为4,对应的代码也是Revision为4的内容。

Step04:选项“Immediate children,including folders”的作用是将a文件夹中的子文件和子文件夹的Revision版本号进行改变,所以A.java是子文件,而子文件夹是b,查看一下b的Revision版本号如图7.96所示。

图7.96 文件夹b的Revision版本号的值也是4

 

    Step05:选项“Change working copy to specified depth”并未复选,含义是不改变a文件夹的Depth深度,效果如图7.97所示。

图7.97 更新深度Depth值还是Fully recursive

 

7.1.13.2 选项Change working copy to specified depth复选与Immediate children,including folders的测试

Step01:继续使用前面的实验环境,对c项目调用“更新”菜单,更新到最新版,效果如图7.98所示。

图7.98 项目c重回最新版

 

    Step02:而硬盘中a文件夹的深度依旧还是“Fully recursive”,如图7.99所示。

图7.99 文件夹a依旧还是Fully recursive

 

    Step03:继续操作,对web项目c中的a包调用“Update to Version…”菜单,配置选项如图7.100所示。

图7.100 配置界面

 

    Step04:单击OK按钮后的效果如图7.101所示。

图7.101 深度被更改文件夹结构发生改变

 

    Step05:文件夹b的Revision版本号被更改为4,效果如图7.102所示。

图7.102 文件夹b的Revision值是4

 

    Step06:而文件夹a的Depth深度也被更改,效果如图7.103所示。

图7.103 文件夹a的Depth被更改

 

    Step07:根据前面学习过的经验,在MyEclipse中对包a调用“更新”菜单时是只把A.java和b进行更新的,效果如图7.104所示。

图7.104 只把a的子元素进行了更新

 

    Step08:文件A.java变成它的最新版Revision值是5,而文件夹b的Revision值是7,效果如图7.105所示。

图7.105 文件夹b的属性

 

7.1.13.3 选项Change working copy to specified depth未复选与Fully recursive的测试

Step01:继续使用前面的实验环境,文件夹a的深度值还是“Immediate children,including folders”,效果如图7.106所示。

图7.106 文件夹a的深度值是Immediate children,including folders

 

Step02:继续操作,对包a调用“Update to Version”菜单配置界面如图7.107所示。

图7.107 配置选项

 

    Step03:单击OK按钮后的包浏览器中的内容如图7.108所示。

图7.108 在当前的文件夹结构中更新到最新版

 

    Step04:文件夹a的属性如图7.109所示。


图7.109 深度值未改而Revision变成7

 

    Step05:而文件夹b及A.java文件的属性如图7.110所示。

图7.110 文件夹b及文件A.java的属性

 

7.1.13.4 选项Change working copy to specified depth复选与Fully recursive的测试

    Step01:继续操作,对a包调用“Update to Version”菜单配置如图7.111所示。

图7.111 改变深度值及更新到最新版

 

    Step02:单击OK按钮后a包中的全体内容被更新到最新版,如图7.112所示。

图7.112 包a中的所有内容都是最新版

 

    Step03:而文件夹a的深度值也被改成Fully recursive,效果如图7.113所示。

图7.113 文件夹a的深度值也被改成Fully recursive

 

7.1.13.5 选项Change working copy to specified depth未复选与Only file children的测试

    Step01:继续使用前面的实验环境进行测试,对包a调用“Update to Version”菜单,配置如图7.114所示:

图7.114 配置选项

 

    Step02:选项“Only file children”的作用是将包a的子文件更新到Revision版本是3的内容。单击OK按钮后的效果如图7.115所示。

图7.115 包浏览器中只有A.java的Revision版本被更改成3

 

    Step03:具体查看A.java文件及b文件夹的属性如图7.116所示。

图7.116 查看A.java文件及b文件夹的属性

 

    Step04:由于选项“Change working copy to specified depth”未复选,所以文件夹a的深度值还是Fully recursive,效果如图7.117所示。

图7.117 文件夹a的深度值还是Fully recursive

 

7.1.13.6 选项Change working copy to specified depth复选与Only file children的测试

    Step01:继续使用前面的实验环境进行测试,对包a调用“Update to Version”菜单,配置如图7.118氙示:

图7.118 配置选项

 

    Step02:在此实验中选项“Change working copy to specified depth”复选,也就是更改a包的更新Depth深度值,同时还要将a包中的子文件进行更新到最新版,单击OK按钮后的效果如图7.119所示。

图7.119 文件夹结构被更改

 

    Step03:文件夹a的深度值被重新定义为“Only file children”,如图7.120所示。

图7.120 文件夹a的Depth值为Only file children

 

7.1.13.7 选项Change working copy to specified depth未复选与Only this item的测试

    Step01:继续使用前面的实验环境进行测试,对包a调用“Update to Version”菜单,配置如图7.121氙示:

图7.121 还原实验环境的Update配置

 

    Step02:单击OK按钮后内容都是最新版,效果如图7.122所示。

图7.122 系统被还原成最新版

 

    Step03:文件夹a的Depth值也为Fully recursive,效果如图7.123所示。

图7.123 文件夹a的Depth值也为Fully recursive

 

    Step04:文件A.java属性如图7.124所示。

图7.124 文件A.java的属性

 

    Step05:下一步对A.java文件调用“Update to Version”菜单,配置如图7.125所示。

图7.125 不更改深度值只将A.java更新到版本为3

 

    Step06:单击OK按钮后的效果如图7.126所示。

图7.126 单击OK按钮后的文件夹结构

 

    Step07:文件A.java属性如图7.127所示“

图7.127 文件A.java版本变成3

 

7.1.13.8 选项Change working copy to specified depth复选与Only this item的测试

    Step01:继续对A.java调用“Update to Version”菜单,配置如图7.128所示。

图7.128 配置界面

 

    Step02:单击OK按钮后的效果如图7.129所示。

图7.129 只把当前文件A.java更新到最新版

 

在此实验中,主要使用“Only this item”选项来对A.java文件进行测试,其实还可以使用“Only this item”选项来对文件夹进行实验。

如果在对文件夹调用“Update to Version”菜单,并且使用“Only this item”选项,而选项“Change working copy to specified depth”未复选,单击OK按钮时只把当前操作的文件夹的Revision值更改到指定的版本,其子资源的结构并未改变。

而如果在对文件夹调用“Update to Version”菜单,使用“Only this item”选项,而选项“Change working copy to specified depth”呈复选的状态时,单击OK按钮后不仅把当前操作的文件夹的Revision值更改到指定的版本,其子资源也被更改。

7.1.13.9 选项Exclude的测试

    Step01:继续使用前面的实验环境进行测试,对包a调用“Update to Version”菜单,配置如图7.130氙示:

图7.130 还原实验环境的Update配置

 

    Step02:单击OK按钮后内容都是最新版,效果如图7.131所示。

图7.131 系统被还原成最新版

 

    Step03:文件夹a的Depth值也为Fully recursive,效果如图7.132所示。

图7.132 文件夹a的Depth值也为Fully recursive

 

    Step04:对包c使用“Exclude”选项,如图7.133所示。

图7.133 要把包c进行排除

 

    Step05:单击OK按钮后的效果如图7.134所示。

图7.134 成功将包c排除

 

    Step06:对项目c调用“更新”菜单时c也不再出现,效果如图7.135所示。

图7.135 单击更新菜单c包还是未出现

 

说明排除c是成功的。

Step07:当对项目c调用“Update to Version”菜单,配置选项如图7.136所示。

图7.136 满树更新到最新版

 

    Step08:单击OK按钮后的效果如图7.137所示。

图7.137 成功更新到最新版

 

7.1.13.10 选项Working copy的测试

   Step01:继续使用前面的实验环境进行测试,对包a调用“Update to Version”菜单,配置如图7.138氙示:

图7.138 创建实验环境的Update配置

 

    Step02:单击OK按钮后的效果如图7.139所示。

图7.139 仅剩A.java文件

 

    Step03:对包a调用“Update to Version”菜单,配置如图7.140所示。

图7.140 配置选项使用Working copy

 

    Step04:选项“Working copy”的含义是使用更新深度来更新项目,单击OK按钮后的效果如图7.141所示。

图7.141 仅仅更新A.java到最新版

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值