《SVN宇宙版教程》:第四章 TortoiseSVN核心技能之分支与合并-3

4.3 查看分支结构

    Step01:对工作副本atest调用Revision graph菜单后可以看到仓库创建分支的情况,如图4.211所示。

图4.211 单击Revision graph菜单

 

    Step02:弹出界面如图4.212所示。

图4.212 主线中可以创建分支分支也可以创建分支

 

    此实验需要留意的是,要在trunk文件夹进行操作,不然分支继承图显示不出来。

4.4 切换Switch的使用

    菜单Switch的作用就是将工作副本所关联的仓库的路径进行变更,更具体的讲就是将工作副本关联到主线或将工作副本关联到分支中,所以使用它最多的情况就是在主线与分支切换时。

4.4.1 工作副本Working copy不改变仓库Repository不改变

Step01:初始化实验环境删除C:\svn_repository中的所有仓库,使用全新的模板仓库a,浏览一下a仓库中的文件夹结构如图4.213所示。

图4.213 仓库a中的结构

 

    Step02:下一步将更改文件夹结构如图4.214所示。

图4.214 更改后的仓库根文件夹结构

 

    Step03:那其它文件和文件夹去哪里了呢?它在file:///C:/svn_repository/a/trunk路径中,如图4.215所示。

图4.215 路径改变也能使revision的值+1

 

Step04:继续操作,将仓库a/trunk文件夹中的内容导出到桌面atest文件夹,导出revision的值是5,如图4.216所示。

图4.216 导出到桌面atest文件夹revision值是5

 

Step05:再对桌面的atest工作副本的最新版创建分支,将分支存储在a仓库的branches/atestA路径中,创建完分支后revision的值是6,再将分支中的内容导出到桌面atestABranches文件夹中。

现在的情况是主线trunk工作副本,也就是atest文件夹和分支branches的工作副本,也就是桌面的atestABranches文件夹中的内容一模一样。

Step06:工作副本atest关联的是a仓库中的trunk文件夹,效果如图4.217所示。

图4.217 桌面atest文件夹的右键属性信息

 

     Step07:这时对桌面atest文件夹调用Switch菜单如图4.218所示。

图4.218 调用Switch菜单

 

    Step08:配置界面如图4.219所示。

图4.219 切换到/branches/atestA仓库中

 

    Step09:单击OK按钮后开始切换Switch分支仓库atestA中,结果如图4.220所示。

图4.220 成功切换到分支仓库

 

Step10:这时工作副本atest关联的是分支仓库,效果如图4.221所示。

图4.221 成功切换到分支仓库

 

    Step11:当对atest文件夹调用Commit提交按钮时无任何变动的文件如图4.222所示。

图4.222 无需要提交的文件

4.4.2 工作副本Working copy不改变仓库Repository改变

Step01:初始化实验环境删除C:\svn_repository中的所有仓库,使用全新的模板仓库a,浏览一下a仓库中的文件夹结构如图4.223所示。

图4.223 仓库a中的结构

 

    Step02:下一步将更改文件夹结构如图4.224所示。

图4.224 更改后的仓库根文件夹结构

 

    Step03:那其它文件和文件夹去哪里了呢?它在file:///C:/svn_repository/a/trunk路径中,如图4.225所示。

图4.225 路径改变也能使revision的值+1

 

Step04:继续操作,将仓库a/trunk文件夹中的内容导出到桌面atest文件夹,导出revision的值是5,如图4.226所示。

图4.226 导出到桌面atest文件夹revision值是5

 

Step05:再对桌面的atest工作副本的最新版创建分支,将分支存储在a仓库的branches/atestA路径中,创建完分支后revision的值是6。

Step06:将分支仓库file:///C:/svn_repository/a/branches/atestA导出到桌面atestABranches文件夹,导出的revision版本号也是6,并且文件夹中a.txt的内容如图4.227所示。

图4.227 文件夹atestABranches中的a.txt内容是旧版

 

    Step07:更改桌面的atest文件夹中的a.txt内容如图4.228所示。

图4.228 更改主线中的内容

 

    Step08:对文件夹atest调用Commit菜单后将最新版的代码提交到a仓库中,成功Commit提交效果如图4.229所示。

图4.229 成功提交到a仓库

 

    现在的情况是仓库a中的内容被更改了,而工作副本atestABranches中的内容未更改,所以现在想把桌面的atestABranches工作副本切换到a仓库中,来看看发生什么样的情况。

    Step09:对桌面atestABranches调用Switch菜单后弹出窗口配置界面如图4.230所示。

图4.230 切换到trunk中

 

    Step10:单击OK按钮后的效果如图4.231所示。

图4.231 没有什么异常发生仅仅路径被切换

 

    Step11:但a.txt中的内容却被替换了,效果如图4.232所示。

图4.232 文件a.txt内容与trunk中的a.txt内容一样

 

    Step12:从文件夹atestABranches的属性中还是可以看到Switch操作是成功的,效果如图4.233所示。

图4.233 成功Switch切换到a仓库的trunk路径中

 

4.4.3 工作副本Working copy改变仓库Repository不改变

Step01:初始化实验环境删除C:\svn_repository中的所有仓库,使用全新的模板仓库a,浏览一下a仓库中的文件夹结构如图4.234所示。

图4.234 仓库a中的结构

 

    Step02:下一步将更改文件夹结构如图4.235所示。

图4.235 更改后的仓库根文件夹结构

 

    Step03:那其它文件和文件夹去哪里了呢?它在file:///C:/svn_repository/a/trunk路径中,如图4.236所示。

图4.236 路径改变也能使revision的值+1

 

Step04:继续操作,将仓库a/trunk导出到桌面atest文件夹,导出revision的值是5,如图4.237所示。

图4.237 导出到桌面atest文件夹revision值是5

 

Step05:再对桌面的atest工作副本的最新版创建分支,将分支存储在a仓库的branches/atestA路径中,创建完分支后revision的值是6。

    Step06:将分支仓库file:///C:/svn_repository/a/branches/atestA导出到桌面atestABranches文件夹,导出的revision版本号也是6。

    Step07:更改桌面的atestABranches文件夹中的a.txt内容如图4.238所示。

图4.238 更改分支中的内容

 

    Step08:对文件夹atestABranches调用Commit菜单后将最新版的代码提交到file:///C:/svn_repository/a/branches/atestA分支仓库的路径中,成功Commit提交效果如图4.239所示。

图4.239 成功提交

 

    现在的情况是仓库a中的内容未更改,而工作副本atestABranches中的内容已更改,所以现在想把桌面的atestABranches工作副本切换到a仓库中,来看看发生什么样的情况。

    Step09:对桌面atestABranches调用Switch菜单后弹出窗口配置界面如图4.240所示。

图4.240 切换到trunk中

 

    Step10:单击OK按钮后的效果如图4.241所示。

图4.241 没有什么异常发生仅仅路径被切换

 

    Step11:但a.txt中的内容却被替换了,效果如图4.242所示。

图4.242 文件a.txt内容与trunk中的a.txt内容一样

 

    Step12:从文件夹atestABranches的属性中还是可以看到Switch操作是成功的,效果如图4.243所示。

图4.243 成功Switch切换到a仓库的trunk路径中

 

    但如果在上面的过程中,更改atestABranches文件夹中的内容不提交时,再Switch到a/trunk时,atestABranches文件夹中的内容还是保持更改后的值,并不与a/trunk中的内容一样。

 

4.4.4 菜单Switch与Relocate的区别

从上面3个小章节中可以发现Switch与Relocate菜单功能基本相似,都可以更改工作副本Working copy所关联仓库的路径。

那它们之间有什么区别呢?从表象上来看,有如下2点:

(1)对文件夹可以调用Switch和Relocate菜单,如图4.244所示。

图4.244 这2个菜单可以应用在文件夹中

 

    (2)对文件只可以调用Switch菜单,效果如图4.245所示。

图4.245 Switch还支持文件

 

    除了上面列出的2点外,这2个菜单在被调用时对文件变更时的情况的处理方式也不一样。

    Step01:重置系统实验环境,添加全新的模板仓库a并放入C:\svn_repository文件夹中。

    Step02:将仓库a文件夹复制成z1和z2文件夹,如图4.246所示。

图4.246 复制成z1和z2文件夹

 

    Step03:将仓库z1导出到桌面z1文件夹,并更改a.txt文件内容如图4.247所示。

图4.247 更改a.txt文件

 

    Step04:并提交到z1仓库中。

    Step05:现在实验的环境是仓库a是旧版的,z1是新版的,将a仓库分别导出到桌面a1文件夹和a2文件夹中,对a1文件夹调用Relocate菜单,配置URL如图4.248所示。

图4.248 对a1文件夹配置Relocate参数

 

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

图4.249 工作副本内容纹丝未动

 

    Step07:但a1文件夹关联的仓库的路径改成z1了,效果如图4.250所示。

图4.250 工作副本a1关联的仓库改成z1了

 

    Step08:这时再对a1文件夹调用Update菜单后的效果如图4.251所示。

图4.251 工作副本a1中的内容与仓库z1中的内容一样

 

    Step09:如果对桌面的a2工作副本调用Switch菜单时配置URL如图4.252示:

图4.252 URL是外部仓库的路径

 

    Step10:单击OK按钮后弹出异常提示如图4.253所示。

图4.253 菜单Switch不支持外部仓库的切换

 

通过此实验可以得知:

(1)Relocate菜单主要的使用场合还是计算机的IP或仓库名称改变后,想将工作副本与新位置的仓库进行关联时使用,目的路径必须是一个仓库的根Root路径。

(2)Switch菜单是在本仓库内进行切换,也就是工作副本在主线与分支的切换中使用,是Repository仓库内的切换操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值