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