Magento:Patch 7405 Hunk#1失败了

时间:2016-02-03 10:38:47

标签: php magento patch

我有一个magento 1.9.0.1,我正在尝试修补7405.但是,当我尝试这个时,我收到以下错误:

app/code/core/Mage/Customer/controllers/AccountController.php
Hunk #1 FAILED at 68 (different line endings).

我目前成功申请的补丁是:1533,4291,5344,5944,6285,6482,6788,7616

我现在不知道该怎么做,有没有办法找到补丁正在比较我的AccountController.php的文件,所以我可以检查一下有什么不同?有没有其他方法来处理这个?因为现在我不知道该怎么做。

4 个答案:

答案 0 :(得分:2)

该问题的一个很好的指标可能是以下信息:

Hunk#1在68 (不同的行结尾)失败

通过app/code/core/Mage/Customer/controllers/AccountController.php运行dos2unix以删除有问题的行结尾(可能是CRLF而不是* nix LF),然后查看补丁部分,了解该部分代码中的预期结果,并确保没有这是一个额外的换行符。

另一个答案有补丁部分。 -行是原始行,+行代替它。要运行补丁,代码必须匹配字符的字符,不包括+行的所有内容以及以-开头且以空格交换-的任何行。

答案 1 :(得分:0)

这是PATCH_SUPEE_7405 for 1.9.0.1 CE修补AccountController.php文件的一部分。

    diff --git app/code/core/Mage/Customer/controllers/AccountController.php app/code/core/Mage/Customer/controllers/AccountController.php
index 19c4507..1dbcf88 100644
--- app/code/core/Mage/Customer/controllers/AccountController.php
+++ app/code/core/Mage/Customer/controllers/AccountController.php
@@ -68,7 +68,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
             return;
         }

-        $action = $this->getRequest()->getActionName();
+        $action = strtolower($this->getRequest()->getActionName());
         $openActions = array(
             'create',
             'login',

它只修改$action = $this->getRequest()->getActionName();$action = strtolower($this->getRequest()->getActionName());

答案 2 :(得分:0)

我仅在Windows(github客户端随附的git posh shell)中运行补丁(sh .\PATCH_SUPEE-...)就成功了。如果我尝试从虚拟环境内部运行,则尝试打补丁时会收到行结束错误。

答案 3 :(得分:0)

您还可以在 PATCH_SUPEE -... sh 中添加此-ignore-whitespace ,如下所示:

    PATCH_APPLY_REVERT_RESULT=`$SED_BIN -e '1,/^__PATCHFILE_FOLLOWS__$/d' "$CURRENT_DIR""$BASE_NAME" | $PATCH_BIN $DRY_RUN_FLAG $REVERT_FLAG -p0`

对于

    PATCH_APPLY_REVERT_RESULT=`$SED_BIN -e '1,/^__PATCHFILE_FOLLOWS__$/d' "$CURRENT_DIR""$BASE_NAME" | $PATCH_BIN $DRY_RUN_FLAG $REVERT_FLAG -p0 --ignore-whitespace`