DeltaRepo Updater - Tojaj/DeltaRepo GitHub Wiki
Tool + python library for updating repositories with support for deltarepos.
updaterepo [--target CONTENTHASH] <delta_repos_mirror> <local_repo>
delta_repos_mirror shoud be addres on wich delaterepos.xml.xz exists
-
--only METADATA_TYPE- Update only this metadata. Could be specified multiple times. (E.g.--only primary --only filelists)
managedeltarepos [options] <old_repo> <new_repo> [deltarepos_dir]
- Make delta
old_repo -> new_repo. Store it to thedeltarepos_dir. - If no
deltarepos_diris specified, the current working directory is used. - The record for the newly created deltarepo is added to the
deltarepos_dir/deltarepos.xml.xzfile (if the file doesn't exists, it will be created).
createdeltarepo --gendeltareposfile [-o|--outputdir DIR] <deltarepos_dir>
- If
DIRis specified, the delaterepos.xml will be generated there (existing deltarepos.xml will be overwritten).
- Make temporary directory
/tmp/deltarepo-timestamp-XXXXXX/ -
deltarepos_dir/could be public directory so it is better to do temporary directories somewhere else. - Generate delta repository
- Move delta repository to the
deltarepos_dir/ - Update/Create
deltarepos.xml.xzfile in thedeltarepos_dir/
- Analyze the
local_repo - Get the
revision - Get the highest
timestampin the repodata.xml - Get
contenthash - Get the list of available metadata files (primary, filelists, ...)
- Download the current
repomd.xmlfrom the remote repository - Download the current
deltarepos/delaterepos.xml.xz - If delaterepos.xml.xz was downloaded:
- Find the target contenthash, use the supplied CONTENTHASH or find out the most current.
- Found appropriate delta or chain of deltas that have to be used.
- Calculate expenses for this update (total downloaded size)
- When we have a list of deltas that has to be applied, download them - sequentially
- Apply delta right after it is downloaded, simultaneously with downloading of the next delta.
- Done