《SVN宇宙版教程》:第二章 TortoiseSVN的Update和Commit与冲突的解决-1

第二章 TortoiseSVN的Update和Commit与冲突的解决

  导言:

  在本章中将介绍TortoiseSVN软件的Update更新与Commit提交功能,这2个功能也是使用SVN工具必须要掌握的技能,但仅仅掌握Checkout与Commit还不够,所以在此章节中将用大量的示例来细化这2个功能在使用上的方式,增加对Checkout与Commit功能的认识。

2.1 SVN中的Update菜单-不更改文件执行Update

    菜单Update的主要作用就是将SVN仓库中最新版的文件同步到本地。

2.1 创建仓库及Import操作

    Step01:在C:\svn_repository文件夹中创建名称为d的仓库,并在桌面创建名称为d_data的文件夹,在其中创建d.txt文件,如图2.1所示。

图2.1 准备Import到仓库d中的数据源

 

Step02:对文件夹d_data执行Import菜单导入到仓库中,如图2.2所示。

图2.2 调用Import菜单

 

Step03:导入后的仓库内容如图2.3所示。

图2.3 文件d.txt成功导入到仓库中

 

2.2 创建2个Checkout文件夹

    Step01:在桌面创建2个Checkout文件夹,如图2.4所示。

图2.4 在桌面创建2个Checkout文件夹

 

    Step02:将d仓库中的所有内容分别Checkout导出到这2个文件夹中,如图2.5所示。

图2.5 将仓库d分别Checkout到这2个文件夹中

 

2.3 更改d_checkout2中的d.txt文件

    Step01:将文件夹d_checkout2中的d.txt内容改成2,如图2.6所示。

图2.6 将文件夹d_checkout2中的d.txt内容改成2

 

    Step02:并对文件夹d_checkout2执行Commit操作,如图2.7所示。

图2.7 对文件夹d_checkout2执行Commit操作

 

2.4 对d_checkout1文件夹执行Update操作

现在的状态是:

  1. 仓库d中d.txt文件内容是2,如图2.8所示。

图2.8 仓库中的内容是2

 

  1. 桌面中的d_checkout1文件夹中的d.txt内容还是1,并没有更改d.txt文件的内容,如图2.9所示。

图2.9 桌面中的d_checkout1文件夹中的d.txt内容是1

 

    Step01:这时d_checkout1文件夹中的内容想重新从仓库中进行取得,也就是想从仓库中取得最新版的文件,调用Update菜单即可,如图2.10所示。

图2.10 仓库d中的内容全部下载到d_checkout1文件夹中

 

    Step02:并且d_checkout1文件夹中d.txt文件内容也是2,如图2.11所示。

图2.11 与仓库中的内容进行了同步

 

2.2 SVN中的更新

在实验1中,文件夹d_checkout1中的d.txt文件从未手动更改,在实验2中将实现手动更改文件夹d_checkout1中d.txt文件的效果,来看看到底发生什么样的情况。

2.2.1 重置实验环境

    删除桌面d_checkout1和d_checkout2文件夹中的所有内容,包括.svn隐藏文件夹,并把d仓库中的d.txt也删除,效果如图2.12所示。

图2.12 重置所有实验环境

 

2.2.2 重新执行Import操作

    在此步骤中,需要重新对桌面的d_data文件夹执行Import操作,再次查看默认的d.txt文件内容如图2.13所示。

图2.13 默认的d.txt文件内容是1

 

    对d_data文件夹执行Import菜单进行导入到d仓库中。

2.2.3 将仓库d导出到2个文件夹

    继续将仓库d中的内容Checkout到桌面2个文件夹,Checkout结束后的效果如图2.14所示。

图2.14 成功Checkout到2个文件夹

 

2.2.4 改变d_checkout2文件夹中的d.txt文件内容并Commit提交

    继续更改d_checkout2文件夹中的d.txt文件内容为2,效果如图2.15所示。

图2.15 更改d_checkout2文件夹中的d.txt文件内容为2

 

    对d_checkout2文件夹执行Commit提交到d仓库。

2.2.5 改变d_checkout1文件夹中的d.txt文件内容调用Update

    Step01:继续操作,改变d_checkout1文件夹中的d.txt文件内容为3,效果如图2.16所示。

图2.16 改变d_checkout1文件夹中的d.txt文件内容为3

 

从d_checkout1文件夹中的d.txt文件图标可以发现,呈叹号,说明d.txt文件被更改了。而仓库d中的d.txt文件内容是2。

Step02:下面对d_checkout1文件夹执行Update菜单命令,如图2.17所示。

图2.17 出现异常d.txt文件呈冲突的状态

 

    Step03:打开d_checkout1文件夹中的d.txt文件内容如图2.18所示。

图2.18 打开d_checkout1文件夹中的d.txt文件内容

 

    Step04:如何解决这样的情况呢?执行“Check for modifications”菜单,如图2.19所示。

图2.19 执行Check for modifications菜单

 

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

图2.20 文件d.txt是冲突的状态

 

    Step06:鼠标右键对d.txt文件执行“Resolve conflict using ‘theirs’”菜单,如图2.21所示。

图2.21 执行Resolve conflict using ‘theirs’菜单

 

    菜单Resolve conflict using ‘theirs’的功能是使用SVN仓库中的内容,而Resolve conflict using ‘mine是使用自己的内容来解决这个冲突,如果想混合内容在后面的章节有介绍。

    Step07:弹出界面如图2.22所示。

图2.22 询问是否解决了这个冲突

 

    Step08:单击Yes按钮后的效果如图2.23所示。

图2.23 文件d.txt冲突被解决了使用了SVN仓库中的内容

 

    Step09:文件夹d_checkout1中的d.txt文件内容如图2.24所示。

图2.24 内容来自SVN服务器

 

2.3 SVN中的提交

    菜单Update的作用是Local本地与SVN服务器中的数据进行同步,而Commit提交命令是将本地更改后的文件提交到SVN服务器。

2.3.1 准备仓库及数据源文件

    创建名称为e的仓库,在桌面创建e_data数据源文件夹,在e_data文件夹中创建e.txt文件,文件内容是1,并对e_data文件夹执行Import菜单将e.txt导入到e仓库中,Import的结果如图2.25所示。

图2.25 成功Import的结果

2.3.2 将e仓库导出及编辑文件内容

    在桌面创建文件夹e_checkout,将e仓库中的所有内容Checkout到此文件夹中,Checkout结束后内容如图2.26所示。

图2.26 成功Checkout

 

    并在e_checkout文件夹中创建名称为100.txt文本文件,内容为100,还要将e.txt文件内容改成2,如图2.27所示。

图2.27 新创建100.txt文件及编辑e.txt文件内容为2

2.3.3 对e_checkout文件夹执行Commit菜单

    Step01:对桌面中的e_checkout文件夹执行Commit菜单,弹出界面如图2.28所示。

图2.28 执行Commit菜单弹出的界面

 

界面中的Commit to代表要往哪个仓库地址进行Commit提交。

按钮Recent messages是以前Import导入或Commit提交操作时添加的注释,由于本实验从未添加注释,所以内容为空,如图2.29所示。

图2.29 空的历史注释消息

 

    Step02:在图2.30的界面中可以对Commit提交的文件根据不同的属性进行过滤筛选,从而可以有选择性的进行Commit操作。

图2.30 Commit提交文件的列表

 

    Step02:先单击None再单击Non-versioned时界面效果如图2.31所示。

图2.31 100.txt是non-versioned无版本号的

 

    Step03:先单击None再单击Versioned时界面效果如图2.32所示。

图2.32 文件e.txt是有版本号的

 

    Step04:先单击None再单击Modified时界面效果如图2.33所示。

图2.33 文件e.txt被更改了

 

    Step05:为了演示Files按钮先把当前的Commit界面关闭,在桌面的e_checkout文件夹中添加1个名称为iamdir的文件夹,如图2.34所示。

图2.34 添加iamdir文件夹

 

    再对文件夹e_checkout执行Commit菜单。

    先单击None再单击Files时界面效果如图2.35所示。

图2.35 2个文件被选中了

 

    Step06:先单击None再单击Directories时界面效果如图2.36所示。

图2.36 文件夹iamdir被选中了

 

    下方选项的作用是显示没有版本号的文件,不复选时的效果如图2.37所示。

图2.37 不显示无版本号的文件

 

    打上勾的效果如图2.38所示。

图2.38 显示无版本号的文件

 

通过不同的筛选条件对文件名前面的Checkbox进行复选,也就意味着要对哪些文件执行Commit提交操作。

2.3.4 提交全部内容

    单击All按钮全选所有的文件及文件夹,单击OK按钮进行Commit提交操作。Commit成功后的结果如图2.39所示。

图2.39 成功提交文件和文件夹

 

    100.txt和e.txt文件内容如图2.40所示。

图2.40 2个文本文件的内容

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值