【问题标题】:Magento: Patch 7405 Hunk #1 failedMagento:补丁 7405 Hunk #1 失败
【发布时间】:2016-02-03 10:38:46
【问题描述】:

我有一个 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 的文件,以便我可以检查有什么不同?有没有其他方法来处理这个?因为现在我不知道该怎么办。

【问题讨论】:

标签: php magento patch


【解决方案1】:

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

Hunk #1 FAILED at 68 (不同的行尾)

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

另一个答案是补丁部分。 - 行是原始行,+ 行将替换它。要运行补丁,代码必须逐个字符匹配,不包括 + 行和任何以 - 开头的行,其中 - 与空格交换。

【讨论】:

    【解决方案2】:

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

        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());

    【讨论】:

    • 我可以告诉补丁忽略这个特定文件,因为我会手动执行吗?
    【解决方案3】:

    我只需在 Windows 中运行补丁(sh .\PATCH_SUPEE-...)就成功了(github 客户端附带的 git posh shell)。如果我尝试从我的虚拟环境中运行,我会在尝试修补时收到行尾错误。

    【讨论】:

      【解决方案4】:

      你也可以在你的 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`

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-11
        • 1970-01-01
        相关资源
        最近更新 更多