【问题标题】:Creating a Patch with TFS使用 TFS 创建补丁
【发布时间】:2010-09-08 07:26:41
【问题描述】:

在 SubVersion 中创建补丁非常简单,使用 Tortoise,您可以右键单击并选择创建补丁。但是对于我的生活,我在 TFS 中找不到这个功能。这可能吗?

如果不是,在开源 TFS 托管项目(a la CodePlex)中提交补丁的标准方法是什么?

【问题讨论】:

    标签: version-control tfs patch


    【解决方案1】:

    我写了一篇关于类似问题的博客文章,其中我使用了 TF.exe 命令和 7Zip 到 create a TFS patch file,然后可以将其应用于另一个 TFS 服务器或工作区。我在Github 上发布了 Powershell 脚本,它可用于压缩一个工作区上的任何未决更改,然后将它们应用到另一台服务器。必须对其进行修改以使用变更集而不是挂起的变更,但这应该不会太难完成。

    【讨论】:

    • 此脚本使用整个文件,而不是差异行。更多受控的 xcopy
    【解决方案2】:
    tf diff /shelveset:shelveset /format:unified
    

    编辑:这会写入标准输出。您可以将输出通过管道传输到文件中。

    有关更多选项,请参阅Difference Command

    【讨论】:

    • 你能再解释一下吗? 1.你会如何应用这个补丁? 2.另外,如果项目对补丁程序是只读的,他就不能创建一个shelfset,对吗?
    • 有一个名为“patch”的标准 UNIX 程序,它将统一差异应用于源代码树。我相信你可以找到一个 Windows 实现,或者你可以使用 Cygwin。
    • @Doron 这将显示搁置集和当前工作区文件夹之间的所有差异,格式类似于:hg.shrinkrays.net/spruce/changeset/0d00e3c15e2c/raw/…
    • 如何将| 传送到文件中?我以为你必须将> 重定向到一个文件。
    • 如果您以前没有这样做过:在开始菜单中,向下钻取到 Visual Studio、工具、命令提示符。然后 cd 到工作区本地树中某处的文件夹,例如c:\build\myProject\src
    【解决方案3】:

    因为 TFS 本身不支持补丁文件,所以我看到人们在 CodePlex 上做的最常见的事情就是压缩修改后的文件并上传压缩文件。然后项目协调员对他们自己的结帐进行比较。

    然而,由于 CodePlex 也支持 TortoiseSVN,越来越多的人使用它来创建他们的补丁文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多