【问题标题】:How to resolve error " Hunk #2 FAILED at 456. 1 out of 2 hunks FAILED"如何解决错误“Hunk #2 FAILED at 456. 1 out of 2 hunks FAILED”
【发布时间】:2020-03-16 02:06:13
【问题描述】:

我正在尝试在 ubuntu 终端中运行以下命令

patch -p0 -i adjustmentFile.patch

这是给出以下错误

patching file ./src/helpStructures/CastaliaModule.cc
patching file ./src/node/communication/mac/tunableMac/TunableMAC.cc
Hunk #2 FAILED at 456.
1 out of 2 hunks FAILED -- saving rejects to file ./src/node/communication/mac/tunableMac/TunableMAC.cc.rej

我尝试了链接Hunk #1 FAILED at 1. What's that mean? 中建议的几乎所有方法。但是,没有任何效果。

这是我的版本详情

VIM - Vi IMproved 8.0(2016 年 9 月 12 日,2019 年 6 月 6 日 17:31:41 编译) 包含的补丁:1-1453

补丁文件:

diff -r -u ./src/helpStructures/CastaliaModule.cc ./src/helpStructures/CastaliaModule.cc
--- ./src/helpStructures/CastaliaModule.cc  2010-12-09 09:56:47.000000000 -0300
+++ ./src/helpStructures/CastaliaModule.cc  2011-12-20 00:16:39.944320051 -0300
@@ -180,6 +180,8 @@
            classPointers.resourceManager = getParentModule()->getParentModule()->getSubmodule("ResourceManager");
        else if (name.compare("SensorManager") == 0)
            classPointers.resourceManager = getParentModule()->getSubmodule("ResourceManager");
+       else if (name.compare("Routing") == 0)
+                   classPointers.resourceManager = getParentModule()->getParentModule()->getSubmodule("ResourceManager");
        else
            opp_error("%s module has no rights to call drawPower() function", getFullPath().c_str());
         if (!classPointers.resourceManager) 
Only in ./src/helpStructures: CastaliaModule.cc~
diff -r -u ./src/node/communication/mac/tunableMac/TunableMAC.cc ./src/node/communication/mac/tunableMac/TunableMAC.cc
--- ./src/node/communication/mac/tunableMac/TunableMAC.cc   2011-03-30 02:14:34.000000000 -0300
+++ ./src/node/communication/mac/tunableMac/TunableMAC.cc   2011-12-19 23:57:43.894686687 -0300
@@ -405,6 +405,8 @@
 void TunableMAC::fromRadioLayer(cPacket * pkt, double rssi, double lqi)
 {
    TunableMacPacket *macFrame = dynamic_cast <TunableMacPacket*>(pkt);
+   macFrame->getMacRadioInfoExchange().RSSI = rssi;
+   macFrame->getMacRadioInfoExchange().LQI = lqi;
    if (macFrame == NULL){
        collectOutput("TunableMAC packet breakdown", "filtered, other MAC");
        return;
@@ -454,7 +456,8 @@
        }

        case DATA_FRAME:{
-           toNetworkLayer(macFrame->decapsulate());
+           cPacket *netPkt = decapsulatePacket(macFrame);
+           toNetworkLayer(netPkt);
            collectOutput("TunableMAC packet breakdown", "received data pkts");
            if (macState == MAC_STATE_RX) {
                cancelTimer(ATTEMPT_TX);
Only in ./src/node/communication/mac/tunableMac: TunableMAC.cc~

【问题讨论】:

  • 为什么不手动编辑文件呢?看起来只有几行发生了变化。

标签: patch


【解决方案1】:

修补对文件 X 进行一些更改,并将它们应用于文件 X 的不同实例。也就是说,假设您从文件 X 的第 1 代开始;您进行更改以获得第 2-a 代,而其他人从第 1 代开始制作第 2-b 代。现在,您想要获取创建他的第 2-b 代的编辑,并将它们应用到您的第 2-a 代。

如果“他的”更改与“您的”更改发生冲突,则无法自动修补它们。

您需要查看在 hunk 2 中所做的更改。

-           toNetworkLayer(macFrame->decapsulate());
+           cPacket *netPkt = decapsulatePacket(macFrame);
+           toNetworkLayer(netPkt);

并弄清楚您想要的结果是什么样的。有人需要知道结果应该是什么。不知道意图就无法解决冲突。

【讨论】:

  • 感谢您的解释。我会调查的。
猜你喜欢
  • 1970-01-01
  • 2012-12-26
  • 2016-04-25
  • 1970-01-01
  • 2022-12-12
  • 2013-04-30
  • 2021-08-05
  • 2023-02-17
  • 2022-12-29
相关资源
最近更新 更多