《SVN宇宙版教程》:第三章 TortoiseSVN必备技能-2

3.3 更新到指定的修订版本

菜单“Update to revision”的作用是将本地的文件替换成指定revision版本的内容,此菜单与“Update”菜单在使用上也有一些联系,也就是使用完“Update to revision”菜单后再调用“Update”菜单欲将文件更新到最新版时要参考working copy工作副本文件的Depth深度值。

3.3.1 Only file children选项和make depth sticky的含义

    Step01:在进行实验之前,请按照章节2.6来进行仓库a的初始化工作。

Step02:下面开始实验“Update to revision”界面中的各个选项的含义。

Step03:将仓库a导出Checkout到桌面test11文件夹,导出配置如图3.34所示。

图3.34 导出配置

 

    Step04:导出的结果如图3.35所示。

图3.35 导出Checkout的结果

 

    文件夹test11的深度是

    Step05:当对文件夹test11执行“Update to revision”菜单时,对弹出界面配置如图3.36所示。

图3.36 对test11文件夹中的内容更新到revision是3

 

选项“Make depth sticky”呈复选的状态,也就是将工作副本test11文件的Depth深度值重新定义成“Only file children”。

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

图3.37 文件夹test11的更新到revision值为3的效果

 

    在revision值为3时,并且选项“Make depth sticky”呈复选的状态,将test11中的内容重新定义成“Only file children”深度时仅仅a.txt文件被更改,所以a.txt被Updated更新,test11文件夹结构如图3.38所示。

图3.38 test11文件夹的内容仅剩a.txt

 

再次查看test11文件夹的depth值被改成

Step07:继续实验,将刚才导出Checkout仓库a的同样配置Checkout到test12文件夹,并查看当前文件夹test12的属性

    Step08:继续对test12文件夹执行“Update to revision”菜单,配置界面如图3.39所示。

图3.39 对test12文件夹进行Update到revision值为3

 

选项“Make depth sticky”未呈复选的状态,也就是不重新定义工作副本test12的Depth深度值,也就是保持test12文件夹的深度值不变,仅仅将工作副本的子文件进行更新到revision的值是3的版本。

Step09:单击OK按钮,Update到revision值为3的结果如图3.40所示。

图3.40 更新test12后的效果

 

    Step10:更新后的test12文件夹结构如图3.41所示。

图3.41 更新test12文件夹后的结构

 

    只将a.txt进行了更新,aa.txt并未更新。

文件夹test12的深度值还是保持不变。

3.3.2 Update Depth选项值Working copy的含义

    “Update Depth”选项值“Working copy”的含义是使用当前工作副本(working copy)文件的深度值更新到指定的revision版本号,也就是使用工作副本(working copy)右键菜单“属性”中“Subversion”中的“Depth”深度值进行更新到指定的revision版本号。

    Step01:对仓库a进行导出到桌面test13文件夹,配置界面如图3.42所示。

图3.42 导出到test13文件夹

 

桌面test13的深度值为

Step02:继续用同样的配置将仓库a导出到桌面test14文件夹。

    Step03:对test13文件夹调用“Update to revision”,弹出界面如图3.43所示。

图3.43 对test13进行更新的配置界面

 

    Step04:单击OK按钮后的界面如图3.44所示。

图3.44 成功更新到revision值为3

 

    文件夹test13的深度值不变,还是,因为“Update Depth”值选择“Working copy”就是使用原来的“Fully recursive”值进行更新工作副本,而“Make depth sticky”复选后将使用最新的“Fully recursive”值更新副本的深度,需要注意的是,更新前深度值是“Fully recursive”,更新后还是“Fully recursive”,深度值未改变。

 

    Step05:再对test14进行实验,更新界面配置如图3.45所示。

图3.45 对test14进行测试

 

    Step06:选项“Make depth sticky”并未复选,单击OK按钮后的界面内容如图3.46所示。

图3.46 对test14更新后的效果

 

文件夹test14更新后的深度值是

因为选项“Make depth sticky”并未复选所以保持原来“Fully recursive”的值,再用“Update Depth”选项“Working copy”值来更新工作副本中的内容到revision值为3。

经过此操作,test13和test14文件夹中的内容都是相同的,都是revision值为3的内容。

 

3.3.3 Update Depth选项值Fully recursive的含义

    Step01:继续将仓库a分别用同样的配置导出Checkout到test15和test16文件夹,配置如图3.47所示。

图3.47 导出到test15和test16的配置

 

    Step02:成功Checkout后的界面如图3.48所示。

图3.48 成功导出的界面

 

    而文件夹test15和test16的深度值是一样的,如“图3.3.3 test15和test16深度值一样”所示。

图3.3.3 test15和test16深度值一样

 

Step03:下面开始实验“Update Depth”值为“Fully recursive”的情况。

分别对文件夹test15和test16执行“Update to revision”菜单如图3.49所示。

图3.49 分别对文件夹test15和test16执行菜单

 

    Step04:单击OK后的结果如图3.50所示。

图3.50 执行结果

 

文件夹test15的深度值是

文件夹test16的深度值是

将文件夹test15的“Make depth sticky”复选是将test15的深度值重新定义成“Fully recurssive”后更新到revision值是3的状态。

而对文件夹test16的“Make depth sticky”未复选是使用原来test16的深度值“Only file children”,而“Update Depth”值选择“Fully recurssive”时的作用是将工作副本中的整树内容更新到revision值是3的状态。

3.3.4 Update Depth选项值Immediate children,including folder的含义

    Step01:将仓库a导出到桌面的test17和test18文件夹中,导出到test17文件的配置界面如图3.51所示。

图3.51 导出的配置界面

 

    Step02:用同样的配置将仓库导出到test18中。

    Step03:成功导出后的效果如图3.52所示。

图3.52 成功导出后的效果

 

    而文件夹test17和test18的深度值是一样的,如图3.53所示。

图3.53 文件夹test17和test18的深度值都是Only this item

 

    Step04:对文件夹test17和test18使用“Update to revision”后的界面配置如图3.54所示。

图3.54 对test17和test18使用Update to revision菜单

 

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

图3.55 成功更新的效果

 

    对test17文件夹的“Make depth sticky”复选意味着使用最新版的Depth深度值“Immediate children,including folder”对test17文件夹进行更新,更新的内容是工作副本的子文件夹或子文件。

    对test18文件夹的“Make depth sticky”未复选意味着保持test18的Depth深度值Only this item保持不变。“Update depth”选择“Immediate children,including folder”时的作用是更新的内容为工作副本test18的子文件夹或子文件。

3.3.5 Update Depth选项值Only this item的含义

    Step01:将仓库a导出到桌面test21文件夹中,导出的配置如图3.56所示。

图3.56 导出的配置

 

    Step02:单击OK后的test21文件夹内容如图3.57所示。

图3.57 空的test21文件夹

 

从Checkout导出的效果来看,如果“Checkout Depth”选项选择“Only this item”时导出的是一个空文件夹,那么这个空文件夹的意义是什么呢?

比如有些时候,我们想实现Checkout导出的revision版本号并不相同,这个时候,就得需要在导出Checkout时选择“Only this item”选项了。

    Step03:继续来操作,在test21文件夹上面调用菜单如图3.58所示。

图3.58 调用Repo-browser菜单

 

    Step04:在弹出的“Repo-browser”界面中对a.txt文件调用“Update item to revision”菜单如图3.59所示。

图3.59 对a.txt文件调用Update item to revision菜单

 

    Step05:弹出界面如图3.60所示。

图3.60 导出a.txt的最新版

 

    Step06:成功导出的效果如图3.61所示。

图3.61 成功导出

 

    Step07:文件夹test21中的a.txt内容如图3.62所示。

图3.62 成功导出a.txt最新版

 

    上面的步骤就是在Checkout导出时使用“Only this item”选项来导出一个空文件夹,这样就有选择性的导出指定revision版本的文件到空的工作副本中。

那“Only this item”在“Update to revision”菜单中的使用是什么效果呢?

Step08:继续操作,将仓库a用同样的配置导出Checkout到test22和test23文件夹,导出的配置如图3.63所示。

图3.63 导出的配置

 

    Step09:单击OK按钮成功导出全部的最新的文件,如图3.64所示。

图3.64 导出全部最新版的文件

 

    Step10:对test22和test23文件夹调用“Update to revision”菜单后配置如图3.65所示。

图3.65 欲对文件夹进行Update to revision操作

 

    Step11:单击OK按钮后的效果如图3.66所示。

图3.66 操作完成

 

    Step12:从图中可以发现test22文件夹中的内容全部清空,变成一个空的文件夹了,效果如图3.67所示。

图3.67 删除全部文件的test22文件夹中的内容

 

3.3.6 Update Depth选项值Exclude的含义

选项值Exclude的含义是可以将Checkout后工作空间中的文件进行排除,也就是缩小深度的范围。

下面来实验此值的效果及作用。

Step01:将仓库a中的全部内容导出到test24文件夹中,导出的结果如图3.68所示。

图3.68 全部导出到test24文件夹中

 

    Step02:文件夹test24中的内容如图3.69所示。

图3.69 文件夹test24中的内容

 

Step03:现在不想对a.txt进行操作,所以就得对a.txt进行排除Exclude的操作。

对文件夹test24执行Repo-browser菜单,如图3.70所示。

图3.70 调用Repo-browser菜单

 

    Step04:在弹出的界面中对a.txt文件执行右键菜单“Update item to revision”,如图3.71所示。

图3.71 对a.txt调用Update item to revision菜单

 

Step05:弹出的界面配置如图3.72所示。

图3.72 使用Exclude值把a.txt进行排除

 

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

图3.73 将a.txt排除了

 

    Step07:文件a.txt并不在test24文件夹中了,如图3.74所示。

图3.74 成功将a.txt进行Exclude排除

 

其实还有更简单的办法也能实现Exclude排除的功能,也就是直接对工作副本中的文件或文件夹调用“Update to revision”菜单,然后在Update Depth选项里选择Exclude排除即可。

反排除的操作是在repo-browser窗口中对指定的文件或文件夹也是使用右键菜单“Update item to revision”来进行排除的文件或文件夹的还原。

3.3.7 Update Depth选项值Custom depths的含义

    有时候想将某些文件更新到指定的版本,这种情况下就需要使用Custom depths值了。

    Step01:将仓库a按着图3.75所示的配置进行导出。

图3.75 导出仓库a到test25中

 

    Step02:在桌面test25中使用“Update to revision”菜单,单击其中的按钮,在弹出的界面中配置选择文件如图3.76所示。

图3.76 只选择a.txt

 

    Step03:选项“Update Depth”值被自动设置为“Custom depths”,如图3.77所示。

图3.77 自动设置为Custom depths

 

    Step04:单击OK按钮后,由于Make depth sticky选项复选所以只保留了revision版是3的a.txt文件。

    Step05:文件夹test25结构如图3.78所示。

图3.78 文件夹结构

 

    但test25文件夹的深度并未改变,效果如图3.79所示。

图3.79 深度值Depth未改变还是Fully recursive

 

     说明深度值选择“Custom depths”时,即使Make depth sticky选项复选也不改变工作副本的深度值。

3.3.8 选项Omit externals的含义

Omit英译汉是忽略的意思。

在这里说明一下,引用仓库的操作也算是一个Revision值,比如有Revision版本号,在Revision值是10时在a仓库引用的b仓库,当导出a仓库的版本号是9时是不包含b仓库的。

先创建实验用的环境。

Step01:创建2个仓库a和b,在桌面创建aData文件夹,创建txt文件,内容如图3.80所示。

图3.80 创建txt有初始内容

 

    Step02:对aData文件夹执行Import命令,如图3.81所示。

图3.81 导入后revision的值是2

 

    Step03:再将a仓库中的内容Checkout导出到桌面aCheckout文件夹中,并更改txt内容如图3.82所示。

图3.82 更改txt文件内容

 

    Step04:提交Commit后的结果如图3.83所示。

图3.83 提交Commit后的结果

 

    Step05:再在桌面创建bData文件夹,初始内容如图3.84所示。

图3.84 bData文件夹中的内容

 

    Step06:将bData文件夹中的内容Import导入到b仓库中的结果如图3.85所示。

图3.85 成功导入b仓库中

 

Step07:注意:进入操作环节,在a项目中引用b项目。

引用完成后的a仓库内容如图3.86所示。

图3.86 仓库a成功引用仓库b

 

    Step08:将最新版本的内容从仓库a导出Checkout到桌面atest和aatest文件夹,如图3.87所示。

图3.87 将仓库a导出到2个文件夹中

 

    Step09:这2个文件夹中的文本文件内容如图3.88所示。

图3.88 导出的txt文件内容都是1

 

    Step10:然后再将仓库b导出到桌面bCheckout中,并更改文件内容如图3.89所示。

图3.89 更改b工作副本中的文件

 

    Step11:并对bCheckout文件夹执行commit提交操作,结果如图3.90所示。

图3.90 仓库b被更新了

 

    Step12:再对atest和aatest文件夹调用“Update to revision”菜单,更新的配置界面如图3.91所示。

图3.91 更新的配置界面

 

Step13:单击OK后的两个工作副本中的内容如图3.92所示。

图3.92 左边是旧值,右边是新值

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值