【发布时间】:2010-07-10 15:25:02
【问题描述】:
目前,我的程序通过下载包含源代码的最新 .tar.gz 文件进行自我更新,并将其解压缩到程序所在的当前目录中。有两种更新“模式”——一种用于运行 Python 源的用户,另一种用于用户将程序作为 Windows exe 运行。
随着时间的推移,由于新的图像、库、文档和代码,我的程序的文件大小随着每个版本的发布而变得越来越大。但是,有时从一个版本到另一个版本只发生代码更改,因此用户最终会一遍又一遍地重新下载所有图像、文档等,而只有很小的代码更改。
我在想一种更有效的方法是使用基于补丁/差异的系统,在该系统中,程序仅通过下载小的更改集即可将自己从一个版本增量更新到另一个版本。
但是,我该怎么做呢?如果用户正在运行 0.38 版本,并且有 0.42 可用,他们是否下载 0.38->39? 0.39->40; 0.40->41, 0.41->42?我将如何处理二进制文件中的差异? (图像,在我的情况下)。
我还必须维护一些包含所有补丁的存储库,这还不错。我只是在每个新版本中生成差异。但我想对可执行文件执行此操作比对纯 python 代码执行此操作更难?
感谢任何输入。非常感谢。
【问题讨论】: