3.7 重定位
当仓库的路径改变,或访问仓库的协议发生改变时这时就可以使用Relocate菜单来进行重定位,但需要说明的是,此Relocate菜单使用率非常低,因为它使用的场合大多时候是相同revision版本的重定位,而执行Relocate重定位操作倒不如来一个彻彻底底的Checkout导出。
Step01:重置实验用的环境,创建全新仓库aa及仓库bb,向aa仓库中导入a.txt,向bb仓库中导入b.txt。
Step02:然后将仓库aa导出到桌面aatest。
Step03:继续操作,在C:\svn_repository文件夹中创建xx仓库,并把aa中的所有内容复制到xx仓库中,这一步主要模拟的是桌面的aatest文件夹所关联的仓库aa路径改成了xx,这时就要对aatest工作副本进行重定位。
Step04:然后在xx仓库中配置引用bb仓库,成功引用bb仓库如图3.170所示。
图3.170 仓库xx成功引用bb仓库
Step05:对桌面aatest文件夹调用Relocate菜单,配置弹出界面如图3.171所示。
图3.171 重定位到xx仓库
Step06:单击OK按钮后aatest文件夹中的内容如图3.172所示。
图3.172 将aatext定位到xx仓库中
Step07:但aatext里面的内容并未改变,如图3.173所示。
图3.173 重新定位后aatest内容并不改变
Step08:对aatest文件夹执行Update菜单后的效果如图3.174所示。
图3.174 将引用仓库bb的内容也更新到aatest中了
3.8 如何导出
菜单Export的作用就是将工作副本中的内容进行导出。
Step01:创建实验用的abc和xyz仓库,向abc仓库导入a.txt,向xyz仓库导入x.txt文件,并且设置abc仓库引用xyz仓库。
Step02:将仓库abc导出到桌面abcCheckout文件夹,如图3.175所示。
图3.175 导出abc仓库的配置
Step03:导出后并在桌面abcCheckout文件夹中创建新建的文件夹及新建的文本文件如图3.176所示。
图3.176 桌面abcCheckout文件夹中的内容
Step04:对文件夹abcCheckout执行Export菜单,弹出界面如图3.177所示。
图3.177 第一次Export的配置
Step05:单击“确定”按钮执行Export操作,a1文件夹中的内容如图3.178所示。
图3.178 没有Export无版本的文件夹及文件
Step06:再一次对文件夹abcCheckout执行Export菜单配置如图3.179所示。
图3.179 Export出无版本的文件
Step07:文件夹a2中有无版本的文件夹及文件如图3.180所示。
图3.180 文件夹a2中有无版本的对象
Step08:再一次对文件夹abcCheckout执行Export菜单配置如图3.181所示。
图3.181 忽略引用的项目
Step08:文件夹a3中没有xyz项目的文件如图3.182所示。
图3.182 文件夹a3没有xyz项目
3.9 重命名
Step01:将模板仓库a导出Checkout到桌面atest文件夹中,如3.183所示。
3.183 导出到atest文件夹
Step02:使用Windows的“重命名”菜单来对文件重命名,如图3.184所示。
图3.184 用Windows菜单重命名
Step03:将小写的a.txt改成大写的A.txt如图3.185所示。
图3.185 改成大写的A.txt文件
Step04:对atest调用Commit提交按钮显示窗体效果如图3.186所示。
图3.186 很意外没有要提交的文件
Step05:回到atest文件夹查看A.txt被还原为a.txt文件名如图3.187所示。
图3.187 文件名被还原
Step06:看来遇到这种更改文件名大小写的情况用Windows菜单是解决不了问题的,所以使用TortoiseSVN的Rename来解决这样的问题,对a.txt文件调用Rename菜单如图3.188所示。
图3.188 调用Rename菜单
Step07:对a.txt重命名为A.txt如图3.189所示。
图3.189 改成大写的文件名
Step08:单击OK后进行Commit提交出现界面如图3.190所示。
图3.190 操作Rename被识别
Step09:单击OK后成功提交如图3.191所示。
图3.191 成功提交
Step10:仓库中的A.txt文件被存储如图3.192所示。
图3.192 成功改成大写的文件名
3.10 删除资源
Step01:将模板仓库a导出Checkout到桌面atest文件夹中,如3.193所示。
3.193 导出到atest文件夹
Step02:使用Windows的删除菜单删除2个对象如图3.194所示。
图3.194 删除文件夹和文件
Step03:这时再按下TortoiseSVN的SVN Update菜单时删除的2个对象又被还原了,效果如图3.195所示。
图3.195 文件夹和文件重新从服务器端下载了
Step04:这时就要使用TortoiseSVN的Delete菜单删除要删除的对象,如图3.196所示。
图3.196 调用Delete菜单
Step05:单击Delete菜单后再单击SVN Update菜单后2个对象没有被还原,如图3.197所示。
图3.197 没有被重新下载
3.11 文件的恢复
在操作工作副本或仓库时如果误操作删除了1个文件时还是可以进行恢复的,下面的章节将分别对不同情况的误操作进行恢复。
3.11.1 工作副本删除的恢复
Step01:将模板仓库a放入C:\svn_repository文件夹中,将模板仓库a导出Checkout到桌面atest中。
Step02:用TortoiseSVN的Delete菜单删除trunk文件夹,再用Windows的删除菜单删除a.txt文件,如图3.198所示。
图3.198 用2种删除方式删除后的内容
Step03:再对atest文件夹执行TortoiseSVN的Revert菜单出现界面如图3.199所示。
图3.199 调用Revert菜单
Step04:单击OK按钮后成功恢复,效果如图3.200所示。
图3.200 成功恢复的文件夹结构
3.11.2 服务器端删除的恢复
在工作副本中删除了文件并且已经成功提交到服务器,这种情况还是可以将文件进行还原的。
Step01:重置实验环境,使用全新的模板仓库a,将仓库a导出Checkout到桌面atest文件夹中,将路径atest\a\aa\aaa\aaa.txt文件删除,再将atest\a.txt文件删除,然后Commit提交,效果如图3.201所示。
图3.201 成功提交坏事了
如何恢复删除的文件呢?
Step02:对atest文件夹调用Show log菜单,单击revision值是5的日志,从下面的列表中可以发现有aaa.txt及a.txt被删除了,因为Action的值是Deleted,现在就想恢复这2个文件,如图3.202所示。
图3.202 有2个文件被标记为Deleted删除状态
Step03:按下Ctrl键对这2个文件进行多选,单击菜单如图3.203所示。
图3.203 单击Save revision to…菜单恢复文件
Step04:在弹出的界面中将误删除的文件恢复到桌面,如图3.204所示。
图3.204 恢复到桌面
Step05:单击确定按钮后桌面创建出了误删除的文件,效果如图3.205所示。
图3.205 虽然Commit但也可以还原
3.12 移动文件夹
Step01:创建名称为z的仓库,将如图3.206所示的文件夹结构导入到仓库z中。
图3.206 将平行关系的a和b文件夹导入到z仓库中
Step02:并将z仓库Checkout到桌面z_checkout文件夹中,然后用2个资源管理器窗口打开同一个工作副本,效果如图3.207所示。
图3.207 2个资源管理器窗口打开同一个工作副本
Step03:然后用鼠标右键将左边窗口中的文件夹b拖拽到右边窗口中的a文件夹中,抬起鼠标右键后弹出菜单如图3.208所示。
图3.208 选择SVN Move versioned item(s) here菜单
Step04:这时窗口中文件夹的图标发生变化,效果如图3.209所示。
图3.209 文件夹a改变了文件夹b是新添加的
Step05:这时对文件夹z_checkout调用Commit菜单后的效果如图3.210所示。
图3.210 移动的操作是删除b再添加b
Step06:提交后仓库中的日志内容如图3.211所示。
图3.211 版本revision值为2的效果
Step07:版本revision为3的效果如图3.212所示。
图3.212 版本revision为3的效果
3.13 文件的比较
菜单Diff with previous version的作用是比较当前工作副本中的文件与服务器端文件的差异。
Step01:使用模板仓库a,将仓库a导出到桌面atest文件夹,对a.txt调用这个菜单如图3.213所示。
图3.213 调用Diff with previous version菜单
Step02:弹出界面如图3.214所示。
图3.214 文件存在差异
上面是使用菜单Diff with previous version来检查文件的差异,如果检查目录的差异只有使用Check for modifications菜单了。
Step03:还可以将工作副本中的文件与指定URL路径中的文件进行差异的比较,操作的过程是先按Shift键,然后再调用菜单如图3.215所示。
图3.215 调用Diff with URL菜单
弹出界面如图3.216所示。
图3.216 选择欲比较的URL路径中的文件