Terminology

These words are used throughout the spec. Here's their canonical definition:

A container is a generic word for a set of files, folders, and symlinks. It is also a protobuf message that encodes information about a set of files, folders and symlinks such as their path (relative to the container's root), permissions and sizes, but not their contents.

A diff is the result of a comparison between two containers, old and new. It contains a list of operations required to build new's files from old's files, re-using data when possible.

A patch contains all the information needed to apply an upgrade: both the old and new container, and their diff. Patches are stored in a standard file format.

A signature contains one container and a series of hashes corresponding to fixed-size blocks of the container's files. Signatures are stored in a standard file format.

/dev/null is the empty container: it contains no files, folders or symlinks. A diff against /dev/null is a suitable way to store the initial version of a container.

An archive is a compressed container stored in a single file (e.g. build.zip, build.7z, etc.). They're the preferred way of storing a particular version of a container, and are suitable for diffing, although at the cost of on-the-fly decompression.

A block is a fixed-size series of bytes that belong to a file. Folders and symlinks do not have blocks. Files usually end with short blocks, which are smaller than regular blocks, except if their size is a multiple of the block size.

results matching ""

    No results matching ""