Downloading/updating only changed files between versions

Get help with compiling or installing the game, and discuss announcements of new official releases.

Moderators: Forum Moderators, Developers

User avatar
Development Team
Battle for Wesnoth
Location: #wesnoth @

Downloading/updating only changed files between versions

Post by Development Team »

Table of contents:
Source code (Xdeltas)

Xdelta patches are always provided with every release, including old-stable new-stable and stable new-development upgrades. Check the Xdelta downloads section in the wiki to find patches to upgrade your old sources.

Only official, unmodified tarballs obtained from can be upgraded in this fashion with the provided patches.

Xdeltas need to be applied to the source code archive after uncompressing it with bunzip2 or similar. For example, if you have wesnoth-1.8.2.tar.bz2, you need to uncompress it — not extract — in order to get wesnoth-1.8.2.tar, on which you can then apply the patch.

Code: Select all

$ cd <path>
$ bunzip2 wesnoth-1.8.3.tar.bz2
$ xdelta patch <path>/wesnoth-1.8.3.tar-wesnoth-1.8.4.tar.xdelta wesnoth-1.8.3.tar wesnoth-1.8.4.tar
$ tar xvf wesnoth-1.8.4.tar
Installers for Windows and other platforms

Simply put, you can’t. At least not at the moment.

It would be possible to create an installer package which only updates changed files between two versions, resulting in a smaller download due to the many large files that aren’t prone to be modified between releases, such as music tracks and high-resolution portraits.

But for now, nobody has done this, and we don’t see this as a priority since it would require writing some automated mechanism for generating these packages in conformance with the format used by the full distributions such as the Windows version installer. If you figure out a way to implement this correctly, please contact the developers on IRC (#wesnoth-dev) or Discord (#development).

Git updates

There is one method that works in a similar way to incremental updates. You can track the source code tree with Git, use git pull to fetch any new files, and then recompile. This results in less network traffic after the first checkout, but it also increases the disk space required significantly. You’ll also need to compile Wesnoth yourself, which isn’t trivial in some platforms. For instructions on compiling, see this wiki page.
Last edited by Pentarctagon on July 8th, 2017, 7:10 pm, edited 6 times in total.