平时做代码合并(Merge)的时候,TFS有时不够牛逼,需要手动合并,经常使用的工具是Beyond Compare。哥今天给大家介绍一下一些加快工作效率的小技巧。

首先,在Beyond Compare 3里,因为整合了资源管理器菜单,所以可以直接选中两个文件夹进行比较,而不用打开软件手动选路径。如果两个文件夹不在同一目录下,也可以分两次选择。

在打开比较视图后,一定记得点下这个按钮,才会做到真正的逐文件扫描。不然默认情况下是快速比较的。

比较完成后,我们可以设置一个过滤器,过滤不需要合并的文件。比如,在.NET项目下,VS的user文件、VSS和TFS的版本控制文件、Bin、Debug等目录都可以忽略。就可以在过滤器里这样设置。如果你不希望每次做代码合并都设置一次过滤器,只要在左下角选择“也更新会话默认值”就OK了。

在代码合并的过程中,通常有新增的文件和修改的文件。我个人的习惯是分两次合并。第一次只复制新增的文件,并且在版本控制(如TFS)里添加对应的文件。第二次则专门合并有改动的文件。Beyond Compare工具栏上的视图过滤器按钮可以很方便的给我筛选2次操作需要的文件。

如果你用的是TFS,那恭喜你,你可以安装一个TFS PowerTool,这样就可以在资源管理器中做Checkout、Add、History等操作了,而不用打开VS。对于代码合并来说,可以结合Windows 7的资源管理器搜索框来快速定位需要checkout的文件,而不用手工的像剥洋葱一样一层层去打开文件夹。

合并具体文件的时候,我通常习惯把源文件放在左侧,把要被合并的目标放在右侧,因为复制代码到右侧的快捷键是Ctrl+R,比复制到左侧(Ctrl+L)要容易按到,并且设置左侧为不可编辑以免误保存。在观察代码的时候,就可以这样去判断:

1.左侧红色:新增的代码,可以放心合并(但不是绝对,你得了解代码的意思并且看看版本记录)
2.左右都红:有冲突的代码,小心合并
3.右侧红色:目标文件中的新代码,不需要合并(当然也不是绝对,可能是要删除的代码)

处理完一个文件后,有洁癖的朋友们可以点击右键,选择忽略,让它从视图里消失,世界就更加美好了。

如果你觉得每次都要用右键点忽略比较蛋疼,可以在这里设置个快捷键。工具栏上右键选择“自定义命令”,然后搜索“忽略”,并且指定一个快捷键。

Beyond Compare还有很多牛逼的功能等待大家去发掘,我也不全会,大家可以自己看一下。