【发布时间】:2008-08-21 10:58:40
【问题描述】:
给定一个(源)补丁文件,在 Windows 下将这个补丁应用于源文件的最简单方法是什么?
我可以直观地比较未更改的源代码行的 GUI 工具会很棒。
【问题讨论】:
给定一个(源)补丁文件,在 Windows 下将这个补丁应用于源文件的最简单方法是什么?
我可以直观地比较未更改的源代码行的 GUI 工具会很棒。
【问题讨论】:
在 Windows 操作系统下应用补丁文件的一个好方法是使用 Git。 据我了解,Git 是一种类似于 SVN 的版本控制解决方案。
以下是应用补丁的指南:
git apply --ignore-space-change --ignore-whitespace --whitespace=nowarn file.patch
【讨论】:
Patch for Windows 就是你要找的东西。
【讨论】:
patch.exe 的执行程序需要管理员权限,如果UAE 设置为开启,它会暂停并提示用户。现在,patch.exe 的 Git 版本嵌入了一个清单,可以防止阿联酋的海拔需求。这恰好是 Windows 的一个旧遗留问题,因为名称中包含 install、patch、setup 的任何 exe 都将强制阿联酋提升,除非提供了清单。补丁被应用:patch patch
不是因为 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 installed,git apply 可能会有所帮助,即使在任何 git 存储库之外。
【讨论】:
WinMerge 很棒。
【讨论】: