patch默认给哪个文件打补丁?

发布于 2022-09-05 00:23:09 字数 1437 浏览 16 评论 0

diff -uN foo bar > patch 创建了一个补丁文件
执行 patch -p0 < patch 时发现patch行为不一致

下面的patch文件默认给 core/restservices.class.inc.php打补丁

--- core/restservices.class.inc.php    2017-05-24 19:10:31.156456256 +0800
+++ /tmp/restservices.class.inc.php    2017-05-24 19:10:46.933503094 +0800
@@ -102,6 +102,10 @@
                     $value[] = $aLnkValues;
                 }
             }
+            elseif($oAttDef instanceof AttributeCustomFields)
+            {
+                $value = $oObject->Get($sAttCode)->GetValues();
+            }
             else
             {
                 $value = $oAttDef->GetForJSON($oObject->Get($sAttCode));

下面是同样方法生成的补丁文件,却默认给 /tmp/applicationextension.inc.php打补丁

--- application/applicationextension.inc.php    2017-06-01 19:24:54.292262420 +0800
+++ /tmp/applicationextension.inc.php    2017-06-01 19:36:55.882773607 +0800
@@ -944,6 +944,10 @@
                 }
                 $value = DBObjectSet::FromArray($sLnkClass, $aLinks);
             }
+            elseif($oAttDef instanceof AttributeCustomFields)
+            {
+                $value = json_decode(json_encode($value), true);
+            }
             else
             {
                 $value = $oAttDef->FromJSONToValue($value);

当明确的指定了 patch application/applicationextension.inc.php时,第二个patch才能正确工作,这是什么情况?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文