TFS中的统一差异

TFS中的统一差异,tfs,Tfs,有人知道这(生成统一的差异)是否可能,如果可能,如何实现吗 谢谢。这是tf diff/shelveset:/format:unified。但是,请注意,与大多数现代版本控制系统不同,TFS实际上不能在afaik中使用修补程序文件。也就是说,您不能将diff的结果应用于一组文件以获得结果更改。(大多数人所做的是将更改过的文件压缩,并将其作为“补丁”删除和替换。Ick。)这是一个与SubVersion和其他软件正在使用的功能差异(请原谅双关语)。我相信解决方案很快就会出现,但在此之前,我已经想出了一

有人知道这(生成统一的差异)是否可能,如果可能,如何实现吗


谢谢。

这是
tf diff/shelveset:/format:unified
。但是,请注意,与大多数现代版本控制系统不同,TFS实际上不能在afaik中使用修补程序文件。也就是说,您不能将diff的结果应用于一组文件以获得结果更改。(大多数人所做的是将更改过的文件压缩,并将其作为“补丁”删除和替换。Ick。)

这是一个与SubVersion和其他软件正在使用的功能差异(请原谅双关语)。我相信解决方案很快就会出现,但在此之前,我已经想出了一个解决方案:

  • 构建一个windows窗体应用程序,它将4个字段作为命令行参数(filepath1、label1、filepath2、label2),并返回两个文件的字符串统一差异(可能输出到富文本框或其他内容)。我有一个,但我相信在CodePlex上安装有点粗糙。有几个托管的差异库

  • 将Visual Studio的源代码管理比较函数设置为指向您的diff应用程序。确保它打开并正确比较

  • 构建windows窗体修补程序应用程序,该应用程序将修补程序应用于文件夹。应用程序还必须在修补每个文件时签出它(很有趣!)

  • 设置两个工作区,一个普通工作区和一个MyWkSpace_补丁。这是用来修补的


  • 我仍然需要完成第3点,但这将给我一些类似于SubVersion的功能。会让你知道第三点是怎么回事

    这是我通常做的:

    • 从tf命令行生成统一的diff以获取补丁文件

      tf diff /recursive /format:unified .  >> diff.patch 
      
    • 从下载补丁实用程序

    • 应用补丁

      patch.exe -p0 < diff.patch
      
      patch.exe-p0

    显然,这假设源文件已经签出。如果没有,特别是在跨分支应用修补程序时,请编写一个简单的shell脚本来遍历diff文件,获取文件路径并编辑它们

    John,你知道如何将结果输出到diff工具而不是命令窗口吗?我意外地发现做/选择:?在没有/format:unified选项的情况下,将转到我的默认合并工具(TortoiseMerge.exe),但在打开unified选项的情况下,我无法让它转到那里。另外,我只能看到我自己的搁置集-希望看到团队的所有搁置集-这是可能的,还是我必须从服务器上运行tf.exe?太好了-谢谢。对于像我这样可能不知道的其他人,tf.exe在这里(除非您安装在其他地方)-C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE。这里有一个引用:。我找到了如何将其输出到.diff文件。键入命令:“tf diff/format:unified[/shelveset:]>filename.diff”,然后,如果您安装了任何可以处理.diff格式的东西(比如TortoiseSVN),只需打开它。瞧!对不起,我刚才才看到你之前的评论。管道到标准输出几乎是我也会去的,所以听起来你们都准备好了!我在这里创建了一个功能请求:对于我的安装(windows 7,tfs 2013),从tfs2013创建修补程序是可以的,但修补程序实用程序无法将这些修补程序应用于类似的文件。回答是“在输入行6找不到要修补的文件,可能您使用了错误的-p或--strip选项?”