我正在寻找一个可移植的差异库(No Pear,没有php非广泛支持的扩展 - 比如xdiff),它允许我为更新机制做文件补丁。我使用的diff文件使用统一格式。
我发现class.simplediff.php女巫非常好,(即使它不支持开箱即用的文件,只需要在字符串中加载文件)
但问题是我无法找到验证所有替换是否能够成功处理的方法。
您是否知道一个库可以在应用之前验证差异修补,或者您是否知道如何进行操作?
答案 0 :(得分:0)
我想不出一种方法可以判断补丁是否有效 - 从逻辑上讲,就是这样。但是,如果您的补丁源被认为是“安全的”,您可以通过执行以下操作来检查它是否至少是有效的语法:
答案 1 :(得分:0)
我已将patch.c代码翻译成PHP:
https://gist.github.com/1707075
patch.c代码本身有点混乱,PHP代码也是如此。大块验证有效,但它不像我需要的那样“安全” - 这就是为什么它不是我正在寻找的答案,但也许它会帮助其他人。
编辑:
我编写了一些东西。我还不确定它是否100%可靠,但到目前为止的结果是非常好的“在只读中验证以确保补丁成功应用”:https://github.com/idealtech/UnifiedDiffPatcher
希望它会帮助某人:)