工作必备基础 - 比较差异 ¶
作者:KK
发表日期:2015.12.27
为什么小红更新后还有红点 ¶
可是尽管进行了更新,可是小红的a.js还是长着个红点,怎么出去见人呢?----其实有红点就说明小红的文件与仓库的内容不一样
你想想喔,之前是小明把文件内容修改成了如下
var id = 123;
var email = 'abc@xx.com';
var age = 18;
var name = 'xiaoming';
他提交了代码后,SVN仓库登记的a.js内容肯定就只是上面这4行了,而小红的代码却是5行对不对?只要小红的代码比仓库的a.js多一行或多/少一个文字等不相同,都被视为"该文件已变更,未提交",所以小红的文件上长红点了
比较差异 ¶
对小红的a.js右键选择"SVN 比较差异"(这个菜单只会在文件有红点时出现),这回弹出来的是一个差异比较工具,它分成左右两个视图显示了两个文件状态,如下图,请注意我圈的3个地方,接下来讲解它们
下面那个圈所圈的是个蓝色的 + 号,而且这一行代码是黄色背景的,意思是说,不是黄色背景的都是"仓库的代码内容",因为小红基于仓库的代码内容上添加了她自己的alert代码,所以这就是小红的变更,可是她还没有提交,所以仓库并不知道,没有登记这些内容,小明更新也不会有她这句未提交的代码
查看变更 ¶
此时把小红的代码提交到仓库,接着...接着请你认真看我说的,不要自己乱动哦!接着你去小明那里更新,但是不要关闭更新窗口,我们要基于这个窗口做点操作
首先注意,这里不像小红那里用绿色显示"已合并",而是正常的黑色文字内容
这是因为小红本来自己就有修改,没提交修改就更新了文件,所以新的文件内容和她自己修改的文件内容发生了合并,于是提示"已合并"
可是小明添加email变量声明后就提交了代码,他的代码跟仓库的一模一样,没有发生变更.当小红提交alert代码的时候,小明更新,而小明的文件本来已经没有了变更(之前被他提交了!!!),所以没有"合并"这个说法,只是正常的更新内容而已
好了现在才到本小节的重点,你刚才没有关闭那个更新结果的窗口吧?关了?过来,我保证不打死你!
对这个更新结果中a.js那一行右键会弹出菜单,选择显示日志
会弹出一个日志窗口,这个窗口专门显示了a.js这个文件经过了多少次提交,每次提交版本号都会增加,但不一定是+1哦,先别管
我们选中版本9那一行,然后再对下面的a.js那一行右键选择"显示变更"
于是熟悉的画面又重现了,一个变更比较结果,左边是这个文件在版本9之前的样子,右边是变更后版本9的样子,并显示黄色背景那一行代码是新添加的代码
你也可以再选一下版本8,然后在下面右键a.js查看变更,也能看到版本8的变更
接下来还要学习一下其它变更的查看
删除的变更 ¶
打开小明的a.js,把var age = 18;
那一行删掉,就是第3行代码,然后提交,去小红那边更新,可是也别关闭更新窗口,就在这个更新结果里对a.js右键选择与工作副本比较
这样其实也会出来一个查看变更的窗口,像下图一样,左边是更新之前的样子,右边是更新后的样子,左边用橙色突出显示了被删除的那一行,并且左边有一个减号,右边的相同行里变成了灰色空白,说明在右边的新版中代码被删除掉了
为什么上一章我不教你用这个"与工作副本比较"菜单而是显示日志再查看变更呢,因为可能是SVN的BUG,如果当时与工作副本比较的话显示会有点不正常的,所以我到这个阶段了才教你用这个菜单
修改的变更 ¶
然后我们现在在小红这边是吧,于是打开a.js,把
var email = 'abc@xx.com';
修改成下面的样子
var email = 'xiaohong@xx.com.cn';
其实就是将邮箱中的abc
修改成别的内容,再在.com
后面添加.cn
把小红的变更提交,接着去小明那边更新,然后右键更新的文件名选择显示日志
来弹出日志窗口,但此时先别关闭更新结果窗口,后面要用
在日志窗口里选中最新版日志(默认就选中了),再右键下面的文件名显示变更,显示如下图:
这里有5个看点,我都圈出来了
先看左边的,它显示被修改之前的样子,用一个蓝色的 - 号表示"这一行被删除了点东西",然后邮箱中的abc
内容被划成红色,表示被删除了
再看右边的,它显示被修改之后的样子,用一个蓝色的 + 号表示"这一行有新内容",然后邮箱中的xiaohong
和.cn
这两个个字符串内容标为黄色,表示"这是新内容"