diff/merge configuration in Team Foundation - common Command and Argument values - MSDN Blogs
One of the extensibility points we have in Team Foundation V1 is that you can configure any other diff and merge tools you want. The purpose of this article is to start collecting the most common ones we know or heard about in a central place so people don't have to figure these out on their own. This UI is available via tools -> options -> source control -> visual studio team foundation server -> "configure user tools" button or via the command-line with "tf diff /configure",Like This:

For additional background, try to remember that there are 2 operations that both involve "merge", so we on the TFVC team have tried to use 2 different terms to help clarify which operation is being talked about.
First, there is "tree merge", which you do via the Merge Wizard in the UI or via the "tf merge" command from the command-line. This operation brings over changesets (or parts of them) from one branch into another (or, in the case of /discard, communicates that you don't want them brought over). Many times those changes will just "come over" - the target will have the changes pended on them and you'll be free to check them in with no manual intervention needed.
Second is "content merge", the operation where you take changes inside an individual file and merge them together to make a final output. This is typically needed when the changes are such that they won't automatically merge together (2 users both changing the same line of a file, for instance), but that's not a requirement.
With this in mind, try to remember that what you're really configuring here is diff and "content merge" tools - the "tree merge" operations are done by TF, the extensibility here is the tool being used for content merging individual files.
We use the SourceSafe-style syntax for argument passing. We don't cover this on our doc page about configuring these diff tools, but these are what the argument parameters mean. Note that we're already adding double-quotes around the parameters (since most of the time, there's at least one temp file involved, at the path to that typically has spaces in it), so you typically don't need to add your own quoting.
- %1 = Original file (in diff, the pre-changes file, in merge, the "server" or "theirs" file, the file that is the base file after "their" changes were applied)
- %2 = Modified file (in diff, the post-changes file, in merge the "yours" file - the base file with "your" changes applied)
- %3 = Base file (in the 3-way merge operation, the file which both "theirs" and "yours" are derived from - the common ancestor. This doesn't mean it's the version the changes were based from, since this may be a cherry-pick merge)
- %4 = Merged file (The output file for the merge operation - the filename that the merge tool should write to)
- %5 = Diff options (any additional command-line options you want to pass to your diff tool - this comes into play only when using "tf diff /options" from the command-line)
- %6 = Original file label (The label for the %1 file)
- %7 = Modified file label (The label for the %2 file)
- %8 = Base file label (The label for the %3 file)
- %9 = Merged file label (The label for the %4 file)
Here are the values we've come up with for various tools. If you have additions/corrections, please email me: jmanning at microsoft.com. I'm keeping these as separate tables since you typically think about configuring either one or the other at a given time.
Compare tools
| Product | Command | Arguments |
|---|---|---|
| TFS default | diffmerge.exe | %1 %2 %6 %7 %5 /ignorespace |
| WinDiff | windiff.exe | %1 %2 |
| DiffDoc (for Word files) | DiffDoc.exe | /M%1 /S%2 |
| WinMerge | winmerge.exe | /ub /dl %6 /dr %7 %1 %2 |
| Beyond Compare | bc2.exe | %1 %2 /title1=%6 /title2=%7 |
| KDiff3 | kdiff3.exe | %1 --fname %6 %2 --fname %7 |
| Araxis | compare.exe | /wait /2 /title1:%6 /title2:%7 %1 %2 |
| Compare It! | Wincmp3.exe | %1 /=%6 %2 /=%7 |
| SourceGear DiffMerge | DiffMerge.exe | /title1=%6 /title2=%7 %1 %2 |
| Beyond Compare 3 | BComp.exe | %1 %2 /title1=%6 /title2=%7 |
| TortoiseMerge | TortoiseMerge.exe | /base:%1 /mine:%2 /basename:%6 /minename:%7 |
| Visual SlickEdit | win\vsdiff.exe | %1 %2 |
Merge tools
| Product | Command | Arguments |
|---|---|---|
| TFS default | diffmerge.exe | /merge %1 %2 %3 %4 %6 %7 |
| KDiff3 | kdiff3.exe | %3 --fname %8 %2 --fname %7 %1 --fname %6 -o %4 |
| Visual SourceSafe | ssexp.exe | /merge %1 %2 %3 %4 %6 %7 |
| Araxis | compare.exe | /wait /swap /a3 /3 /title1:%6 /title2:%7 /title3:%8 %1 %2 %3 %4 |
| Beyond Compare (2-way merge) | bc2.exe | %1 %2 /savetarget=%4 /title1=%6 /title2=%7 |
| WinMerge (2-way merge) | winmerge.exe | /ub /dl %6 /dr %7 %1 %2 %4 |
| Guiffy | guiffy.exe | -s -h1%6 -h2%7 -hm%9 %1 %2 %3 %4 |
| Ellie Computing | guimerge.exe | --mode=merge3 %3 %1 %2 --to=%4 --title0=%8 --title1=%6 --title2=%7 --to-title=%9 |
| SourceGear DiffMerge | DiffMerge.exe | /title1=%6 /title2=%8 /title3=%7 /result=%4 %1 %3 %2 |
| Beyond Compare 3 | BComp.exe | %1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9 |
| TortoiseMerge | TortoiseMerge.exe | /base:%3 /mine:%2 /theirs:%1 /basename:%8 /minename:%7 /theirsname:%6 /merged:%4 /mergedname:%9 |
| Visual SlickEdit | win\vsmerge.exe | %3 %1 %2 %4 |
Lionden 2014年12月25日
E-mail:hsdlionden@hotmail.com
转载请注明原文地址和博客园Lionden:http://www.cnblogs.com/lionden/

diff/merge configuration in Team Foundation - common Command and Argument values - MSDN Blogs的更多相关文章
- [转]Resolve Team Foundation Version Control conflicts
本文转自:http://msdn.microsoft.com/en-us/library/ms181432.aspx An advantage of using Team Foundation ver ...
- TF400324: Team Foundation services are not available from server…
Quick Fix As a quick fix you can Close Visual Studio and related apps Browse to %LocalAppData%\Micro ...
- 使用 Team Foundation 版本控制命令
使用 Team Foundation 版本控制命令 Visual Studio 2013 其他版本 Visual Studio 2010 Visual Studio 2008 Visual Stu ...
- Team Foundation Server 2013 with Update 3 Install LOG
[Info @10:14:58.155] ====================================================================[Info @ ...
- Integrate SharePoint 2013 with Team Foundation Server 2012
Now that SharePoint 2013 is out I want to make sure that I can integrate SharePoint 2013 with Team F ...
- Team Foundation 中的错误和事件消息
Visual Studio Team System Team Foundation 中的错误和事件消息 Team Foundation 通过显示错误消息和事件消息来通知您操作成功以及操作失败.一部分错 ...
- TF255466: Team Foundation Server 的配置过程无法继续。以前的更新或安装需要重
在验证是否可以安装 SharePoint 时的提示,Error [ System Checks ] TF255466: The configuration process for Team Found ...
- In-Place upgrade to Team Foundation Server (TFS) 2015 from TFS 2013Team Foundation Server TFS TFS 2015 TFS upgrade TFS with Sharepoint
This upgrade document gives detailed step by step procedure for the In-Place upgrade from TFS 2013 t ...
- 【原创】Team Foundation Server 域环境迁移
先说下此片博客的上下文:部门所在的业务被集团出售,因此我们所有的计算机和服务器都得重新命名,退出当前域加入新公司的域.对于PC和其他服务器,目前不存在太大问题.但是对于Team Foundation ...
随机推荐
- IOS客户端UIwebview下web页面闪屏问题
基于ios客户端uiwebview下的web页面,在其内容高度大于视窗高度时,如果点击超过视窗下文档的底部按钮,收缩内容高度,会发生闪屏问题. 外因是由文档的高度大于视窗的高度所致,本质原因未知. 解 ...
- 疯狂Android讲义 - 学习笔记(四)
Android应用通常有多个Activity,多个Activity组成Activity栈,当前活动的Activity位于栈顶.Activity相当于Java Web开发的Servlet.当Activi ...
- 数据结构:链表(python版)续:带有尾节点引用的单链表
#!/usr/bin/env python # -*- coding:utf-8 -*- from chapter3.single_linked_list import LNode,LinkedLis ...
- 企业商务差旅信息化管理与移动App
背景 某航空公司需要到北京某服务提供商公司学习交流,为了节省出行成本让出差员工乘坐公司运营航线,去程路途较远.需要在先乘飞机到天津机场,转地铁后,再乘动车到北京.回程时发生 后补机票失败, ...
- HTML、CSS、JavaScript和PHP的注释
- Linux(二)__文件目录、常用命令
一.linux下的文件目录 linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层 是根目录"/",然后在此目录下再创建其他的目录 深刻理解linux文件目录是非常重要 ...
- 新手SSH基础框架搭建
SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架. 首先我们先了解SSH的框架所需的包和基本概念: 一.下面我们先来了解一下strut ...
- JavaScript事件对象与事件处理程序
在学习之前建议请看一下事件流.事件冒泡.事件捕获 一.事件对象 事件对象:在DOM触发事件时,会产生一个事件对象event,这个事件对象包含着所有与事件相关的信息.既然event是事件对象,那么它必然 ...
- Linux安全基础:find命令的使用
find 命令用于查找文件系统中的指定文件. *命令格式:find pathname -option [-print -exex -ok] 1.pathname要查找的目录路径 ~表示home目录 . ...
- Mac安装mysql遇到的坑
使用XMPP前安装了mysql,小白遇到好多坑,不要见怪 mysql官网下载,选择Community中扩展名为dmg的文件 安装完成后要记住密码,重要的事情只说一遍,对了,安装时也没有偏好设置和自启动 ...