You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何该补丁应用失败?已尝试多种排查手段仍未解决

补丁Hunk匹配失败的解决方法

你遇到的问题根源是补丁的上下文与目标文件不匹配:原补丁是基于没有# core: 8.x注释行的文件生成的,但实际目标文件中多了这一行注释,导致patch命令无法定位到正确的hunk起始位置,最终出现Hunk #1匹配失败的错误。

以下是两种可行的解决方法:

方案1:重新生成适配目标文件的补丁

直接基于当前带注释的目标文件制作补丁:

  1. 备份目标文件:
    cp web/modules/contrib/activitytracking/activity_tracking.info.yml web/modules/contrib/activitytracking/activity_tracking.info.yml.orig
    
  2. 修改目标文件:删除core: '8.x'行,将core_version_requirement改为^8 || ^9 || ^10
  3. 生成新补丁:
    diff -u web/modules/contrib/activitytracking/activity_tracking.info.yml.orig web/modules/contrib/activitytracking/activity_tracking.info.yml > /var/www/html/patches/activitytracking-2023-09-14-fixed.patch
    
  4. 替换原补丁文件,重新通过composer应用即可。

方案2:手动修改现有补丁

直接调整原补丁的hunk行号和上下文,使其匹配目标文件:
修改后的补丁内容如下:

diff --git a/activity_tracking.info.yml b/activity_tracking.info.yml
index bb406b3..ca61b8f 100644
--- a/activity_tracking.info.yml
+++ b/activity_tracking.info.yml
@@ -6,5 +6,4 @@ dependencies:
   - drupal:user
   - drupal:system (>=8.1.0)
-core: '8.x'
-core_version_requirement: ^8 || ^9
+core_version_requirement: ^8 || ^9 || ^10

修改说明:

将原补丁的@@ -5,5 +5,4 @@改为@@ -6,5 +6,4 @@——因为目标文件多了一行# core: 8.x注释,hunk的起始行从原第5行偏移到了第6行,调整后patch就能找到正确的匹配上下文。

修改完成后,重新执行之前的patch命令或通过composer应用补丁即可成功。

内容的提问来源于stack exchange,提问作者bfuzze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:20:16