老张小站

  1. 欢迎光临

    感谢访问老张的博客!

  • 1
2,687

Discuz二次开发修改过较多文件,怎样手动比对打补丁?

分类 网站技术/村民张先生 发布于 2014-11-21 21:58
1

如果自己对网站程序进行过较多修改,当官方出了新的补丁包时,为了避免我们自己修改过的内容被覆盖,我们可以手动比对更新补丁。

1、到Discuz官方下载最新的补丁包(例如 R20140603 ),以及网站当前已打的补丁包(在网站后台首页可以看到当前版本号和补丁日期,在Discuz官方重新下载一个该日期的补丁包,例如 R20140301 )。

2、解压最新补丁包(下文用 N 代称)和当前版本补丁包(下文用 O 代称)。使用 Beyond Compare 等比较工具比较这两个文件夹(左窗拖入N,右窗拖入O,全选,点击菜单“操作”/“比较内容...”)。待完成比较后,点击“编辑”/“展开所有”,黑色为相同文件,红色为不同文件,蓝色为新增文件。将所有黑色文件(比对相同的文件)删除,这部分文件在新补丁包中并没有变动,无需更新,注意:一定要小心谨慎只删除黑色文件,特别是当一个子文件夹中既有红色也有黑色文件时,小心选择黑色文件,不要将上级文件夹也选中了,否则其中的红色文件也会被删除。

3、将 N 复制一份命名为 M 。FTP登录当前网站路径,根据本地 M 文件夹中的文件列表依次查找服务器上的对应文件,如果服务器上对应文件自己修改过(可以根据文件修改日期来进行判断 *末尾注),则下载该文件覆盖 M 文件夹中的文件。直至所有文件一一对比完。

4、再次利用  Beyond Compare 比较工具,左窗拖入 M ,又窗拖入 N ,全选,点击菜单“操作”/“比较内容...”,比较完成后点击“编辑”/“展开所有”。逐一双击打开红色文件,将右侧变动的内容复制到左侧并保存。全部完成后 M 文件夹即是最终我们可用的补丁包。

5、保险起见,请先备份网站文件。然后打包本地 M 文件夹中的内容,上传后前往服务器解压覆盖,再进入网站后台更新缓存即可。这里特别推荐使用打包上传解压的方式,不要用FTP逐一上传覆盖,因为前者可以保留文件原本的修改日期,FTP覆盖后修改日期会是当前日期,不便于下次手动打补丁时判断文件的修改情况。

此方法也适用于小版本升级,例如 X3.1 升级到 X3.2。

*注:未修改过的文件,其修改日期一般为之前补丁号上的日期,X3.1版本有以下几个补丁日期:20131011、20131122、20140101、20140301、20140603、20141225,另出去你安装Discuz的日期,其它日期的文件均可能是您做过修改的。特殊情况,如果正好在上述几个补丁号日期里进行过修改的文件,需要自己注意合适,凭记忆了。

欢迎转载分享,转载请注明 来源:大张小站 https://www.zhang.cq.cn/2014505.html
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。


已经有 1 条群众意见

  1. 火星人 /2015-01-16 19:35

    虽然看上去有些复杂,但实际补丁包的变动不会太大,操作起来还是挺快的,只是要谨慎点。很好的方法,谢谢! 回应

    #1

欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截