【问题标题】:How to patch on Windows?如何在 Windows 上打补丁?
【发布时间】:2008-08-21 10:58:40
【问题描述】:

给定一个(源)补丁文件,在 Windows 下将这个补丁应用于源文件的最简单方法是什么?

我可以直观地比较未更改的源代码行的 GUI 工具会很棒。

【问题讨论】:

    标签: windows patch


    【解决方案1】:

    在 Windows 操作系统下应用补丁文件的一个好方法是使用 Git。 据我了解,Git 是一种类似于 SVN 的版本控制解决方案。

    以下是应用补丁的指南:

    • 首先,在此处下载最新版本的 Windows Git 版本: GIT
    • 在 cmd 提示符下,将目录更改为补丁文件和要修补的文件
    • 现在您可以使用以下命令行:
    git apply --ignore-space-change --ignore-whitespace --whitespace=nowarn file.patch
    

    【讨论】:

      【解决方案2】:

      Patch for Windows 就是你要找的东西。

      【讨论】:

      • 请注意,此补丁无法与 Vista 的 UAC 配合使用。请尝试使用 Git-for-windows 的 patch.exe,它带有解决问题的清单。
      • @Macke 是对的!请参阅我的答案以了解 GIT 的使用方法!
      • 实际上@Macke 指的是在Windows 中一个名为patch.exe 的执行程序需要管理员权限,如果UAE 设置为开启,它会暂停并提示用户。现在,patch.exe 的 Git 版本嵌入了一个清单,可以防止阿联酋的海拔需求。这恰好是 Windows 的一个旧遗留问题,因为名称中包含 installpatchsetup 的任何 exe 都将强制阿联酋提升,除非提供了清单。补丁被应用:patch patch
      【解决方案3】:

      不是因为 Git 2.3.3(2015 年 3 月),您可以使用 git apply --unsafe-paths 在 git 存储库之外使用 git apply。

      commit 5244a31Junio C Hamano (gitster)

      "git apply" 在工作树(--index/--cached 下)或当前目录(用作 GNU 补丁的替代品时)之外的路径中读取、删除、更新和创建路径不是很小心.

      文档现在包括:

      --unsafe-paths:
      

      默认情况下,影响工作区域之外的补丁(Git 控制的工作树,或者当“git apply”用作 GNU 补丁的替换时的当前工作目录)被拒绝为错误(或恶作剧)。

      git apply 用作“更好的GNU 补丁”时,用户可以通过--unsafe-paths 选项来覆盖此安全检查。
      在使用--index--cached 时,此选项无效。

      因此,如果您有 git installedgit apply 可能会有所帮助,即使在任何 git 存储库之外。

      【讨论】:

        【解决方案4】:

        WinMerge 很棒。

        http://winmerge.org/

        【讨论】:

        • Winmerge 擅长创建补丁,但不擅长应用它们。 OP询问如何应用它。如果 WinMerge 可以应用补丁然后显示所做的更改,那将是一个很棒的新功能。
        • 在 WinMerge 帮助中找到补丁不能使用 WinMerge 应用。但是,您可以使用 GnuWin32 项目中的补丁工具应用补丁,因为 WinMerge 生成的补丁文件与 GNU/diffutils 兼容。另请参阅前面的问题。
        • 我在找这个。谢谢。我确实在谷歌上搜索了“如何制作补丁”这个页面出现在顶部,所以..
        猜你喜欢
        • 1970-01-01
        • 2010-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多