我运行以下命令来应用补丁,在第一次尝试中,它产生了几个错误,指出这些文件的补丁应用失败,在对这些文件进行更改后,我再次运行该命令以查看大量其他错误。
git apply --ignore-space-change --ignore-whitespace patch-file但是我检查了几个文件,看起来补丁是正确应用的,但是为什么会出现错误呢?下面的.rej和源文件并不能帮助我调试原因
// c.rej
fi
fi
- if [ "$qcrild_status" = "true" ]; then
+ multisim=`getprop persist.radio.multisim.config`
+
+ if [ "$multisim" = "dsds" ]; then
# Make sure both rild, qcrild are not running at same time.
# This is possible with vanilla aosp system image.
stop ril-daemon// .c
fi
fi
multisim=`getprop persist.radio.multisim.config`
if [ "$multisim" = "dsds" ]; then
# Make sure both rild, qcrild are not running at same time.
# This is possible with vanilla aosp system image.
stop ril-daemon发布于 2021-03-05 15:09:50
补丁清楚地表明我们必须删除这一行:
then "$qcrild_status“= "true”;
在应用此修补程序的文件中似乎不存在这样的行。
补丁说,在删除行时,我们应该添加三个替换行:
getprop persist.radio.multisim.config ++ if "$multisim“= "dsds”;then显然,这些线路已经存在了。因此,这个特殊的比较块可能已经在您拥有的文件版本中,并且这个补丁-或者这个补丁的这一部分-不应该被应用。
当然,这只是一种猜测。这是补丁的一般问题:补丁说明如何更改某个特定文件-或至少某个特定文件的某个特定版本-以便它成为其他文件,或同一文件的某些不同版本。但是您可能有该文件的第三个版本,或者您可能已经有了更新后的文件。在这种情况下,补丁将不会应用,或者更糟糕的是,它将在不应该应用的时候应用。
例如,当补丁简单地说要添加已经出现多次的行的额外副本时,就会发生后一种情况。例如,假设文件的一个版本为:
Just the place for a Snark.
Just the place for a Snark.假设编辑-补丁-由指令组成,用于查找该行的这两个匹配项,并添加第三个匹配项:
Just the place for a Snark.
+Just the place for a Snark.
Just the place for a Snark.当将此修补程序应用于文件的两行版本时,您将获得文件的三行版本。当将相同的补丁程序应用于三行版本时,您将获得一个四行版本。如果修补程序被应用1000次,您将得到一个包含超过1000次的行的文件版本。
(也许这使它成为even more true?或者:
也许这只是小鸟的叫声
关于这一点,人们应该始终保持警惕,
一只叫Jubjub的鸟--你听说过这个词吗?
在一首诗中,你会发现over there。
是的,我错过了奇数行的内部押韵。天哪。)
https://stackoverflow.com/questions/66484346
复制相似问题