2.5 菜单Export导出的使用
使用Checkout的目的是修改文件再Commit进去,Checkout后的文件与仓库还是存在关联。而导出Export功能就相当于备份,也就是把仓库中的内容复制到硬盘上,导出Export后的文件与仓库无任何的关联,其实本质上的区别就是存在与不存在.svn文件夹,这就是Checkout和Export的区别。
SVN会在Windows操作系统中注册上下文菜单如图2.78所示。
图2.78 右键单击桌面的弹出菜单效果
其中“SVN Checkout”和“Repo-browser”和“Create repository here”和“Import”这4个菜单在前面的章节中已经实验过,下面介绍“Export导出”菜单。
本实例包含章节1.4.4的知识点,所以先把章节1.5.4的环境搭建好,步骤很简单:
(1)删除enable-auto-props = yes选项前面的注释#变成可用
(2)*.txt = svn:keywords=Author Date Id Rev URL;
建议重新启动一下SVN和Apache的Service服务。
Step01:首先创建实验用的仓库,名称aa,再在桌面创建aaData文件夹,其中包含aa.txt文件,并且设置aa.txt文件为utf-8编码,aa.txt内容如图2.79所示。
图2.79 aa.txt文件内容
Step02:将aaData文件夹Import到aa仓库中,内容如图2.80所示。
图2.80 仓库aa中的aa.txt文件内容
Step03:下面开始导出Export操作。
在桌面直接单击鼠标右键选择“Export”菜单如图2.81所示。
图2.81 单击Export菜单
弹出界面如图2.82所示。
图2.82 只需要设置导出的路径即可
在Export界面中只有和
在前面的章节没有介绍过。其中eol style选项的作用是设置不同操作系统间换行符的样式,因为不同操作系统的回车符号是不一样的。在这里选择default是根据当前操作系统来进行确定的。而Do not expand keywords的作用是不是展开关键字Author,Id,Rev,URL,Date。在此步骤中全部的内容都为默认即可,单击OK按钮进行导出Export操作,导出后的内容如图2.83所示。
图2.83 成功导出
Step04:如果在Export的过程中将Do not expand keywords打上勾导出的aa.txt文件内容如图2.84所示。
图2.84 关键字没有展开
2.6 Checkout与Update联合使用的不同情况
准备仓库中的数据阶段:
- 创建测试用的仓库a
- 在桌面创建文件夹aData,创建文件夹a及2个txt文件,文件夹结构及txt文件内容如图2.85所示。
图2.85 文件夹结构及txt文件内容
对aData文件夹执行Import命令,导入到仓库a中,Import后的revision值是图2.86所示。
图2.86 导入后的revision的值是2
(3)将仓库a导出Checkout到桌面aCheckoutTest文件夹,Checkout导出的界面配置如图2.87所示。
图2.87 Checkout到aCheckoutTest文件夹
更改aCheckoutTest文件夹结构,在内部添加txt文件和更改txt文件,如图2.88所示。
图2.88 添加文件和文件夹及更改txt文件
提交Commit后的revision的值如图2.89所示。
图2.89 再次Commit后的revision的值是3
继续更改aCheckoutTest文件夹中的数据如图2.90所示。
图2.90 继续更改aCheckoutTest文件夹中的数据
执行Commit提交,revision的值是如图2.91所示。
图2.91 执行最后一次Commit后的revision的值是4
2.6.1 更新工作副本的全部
Step01:将仓库a导出Checkout到桌面test1文件夹,导出Checkout配置界面如图2.92所示。
图2.92 导出到test1文件夹
Step02:导出后的test1文件夹内容如图2.93所示。
图2.93 Checkout后的test1文件夹内容
Step03:查看test1文件夹的深度属性为,此选项用鼠标右键单击test1文件夹的“属性”菜单的“Subversion”面板进行查看。
Step04:这时对test1文件夹执行Update菜单,效果如图2.94所示。
图2.94 全部更新到了最新版
Step05:现在的test1文件夹中的内容如图2.95所示。
图2.95 全部更新到最新版的内容
上面步骤的功能是以test1文件夹的深度值为做参考,然后单击Update菜单时根据深度值来进行更新到最新版本。
2.6.2 更新工作副本的子文件及子文件夹
Step01:将仓库a按着如图2.96所示的配置导出Checkout到桌面test2文件夹。
图2.96 导出Checkout到test2文件夹
Step02:导出Checkout后的test2文件夹结构及内容如图2.97所示。
图2.97 导出Checkout后的test2文件夹结构及内容
Step03:文件夹test2的深度属性值为,这时对test2文件夹调用Update菜单,结果如图2.98所示。
图2.98 只更新了仓库a中的子文件夹和子文件
Step04:更新后的test2文件夹结构及内容如图2.99所示。
图2.99 只把子文件夹及子文件进行了更新
2.6.3 更新工作副本的文件
Step01:继续对仓库a导出Checkout到桌面test3文件夹,导出Checkout的配置如图2.100所示。
图2.100 第3次导出的界面配置
Step02:导出后的test3文件夹结构及内容如图2.101所示。
图2.101 只把子文件进行了导出Checkout
Step03:文件夹test3的深度值为,下面对test3调用Update菜单效果如图2.102所示。
图2.102 只把a.txt更新到最新版
Step04:Update结束后的test3文件夹内容如图2.103所示。
图2.103 文件a.txt的确是最新版
2.6.4 更新指定内容
Step01:对仓库a执行Checkout操作到桌面test4文件夹,配置界面如图2.104所示。
图2.104 再一次Checkout操作
Step02:这时单击“Choose items…”按钮有选择性的Checkout操作,如图2.105所示。
图2.105 将revision值为2的aa.txt和a.txt进行导出
Step03:单击OK按钮后界面选项变成图2.106所示。
图2.106 导出深度变成Custom depths
Step04:单击OK按钮后test4的文件夹结构及内容如图2.107所示。
图2.107 Custom depths深度导出2个txt文件
Step05:文件夹test4的深度属性值为,对test4文件夹执行Update菜单后的效果如图2.108所示。
图2.108 将a.txt及a文件夹中的所有内容进行了更新到最新版
Step06:文件夹test4的结构及内容如图2.109所示。
图2.109 文件夹test4中的内容
Step07:继续实验。将仓库a导出Checkout到桌面test5文件夹中,如图2.110所示。
图2.110 导出a仓库到test5中
Step08:导出后的界面效果如图2.111所示。
图2.111 什么也没有导出
Step09:文件夹test5中只有.svn文件夹,如图2.112所示。
图2.112 只有.svn文件夹
Step10:文件夹test5的深度设置还是。对test5文件夹执行Update后的效果如图2.113所示。
图2.113 没有变化
选项Only this item的作用就是将当前的文件更新到最新版,如果是文件夹,则将此文件夹中的所有内容进行Checkout导出并且也要更新到最新版revision。