pull: Add a --dry-run option for static deltas
One of the design goals with deltas was not just wire efficiency, but also having all the data up front about how much data would be transferred before starting. Let's expose that better by adding a `dry-run` option to the pull API. This requires static deltas to be useful. Basically we simply call the progress callback once with the data from the superblock.
This commit is contained in:
1 parent
f2c5ecb996
commit
4beb5f4eaf
3 files changed
+113
-7
No files matched your search
@@ -107,12 +107,24 @@ rm main-files -rf
|
||||
# Generate delta that we'll use
|
||||
${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo static-delta generate main
|
||||
prev_rev=$(ostree --repo=ostree-srv/gnomerepo rev-parse main^)
|
||||
new_rev=$(ostree --repo=ostree-srv/gnomerepo rev-parse main)
|
||||
ostree --repo=ostree-srv/gnomerepo summary -u
|
||||
|
||||
cd ${test_tmpdir}
|
||||
repo_init
|
||||
${CMD_PREFIX} ostree --repo=repo pull origin main@${prev_rev}
|
||||
${CMD_PREFIX} ostree --repo=repo pull --dry-run --require-static-deltas origin main >out.txt
|
||||
assert_file_has_content out.txt 'Delta update: 0/1 parts'
|
||||
rev=$(${CMD_PREFIX} ostree --repo=repo rev-parse origin:main)
|
||||
assert_streq "${prev_rev}" "${rev}"
|
||||
${CMD_PREFIX} ostree --repo=repo fsck
|
||||
|
||||
cd ${test_tmpdir}
|
||||
repo_init
|
||||
${CMD_PREFIX} ostree --repo=repo pull origin main@${prev_rev}
|
||||
${CMD_PREFIX} ostree --repo=repo pull --require-static-deltas origin main
|
||||
rev=$(${CMD_PREFIX} ostree --repo=repo rev-parse origin:main)
|
||||
assert_streq "${new_rev}" "${rev}"
|
||||
${CMD_PREFIX} ostree --repo=repo fsck
|
||||
|
||||
cd ${test_tmpdir}
|
||||
@@ -140,6 +152,8 @@ fi
|
||||
assert_file_has_content err.txt "deltas required, but none found"
|
||||
${CMD_PREFIX} ostree --repo=repo fsck
|
||||
|
||||
echo "ok delta required but don't exist"
|
||||
|
||||
cd ${test_tmpdir}
|
||||
rm main-files -rf
|
||||
${CMD_PREFIX} ostree --repo=ostree-srv/gnomerepo checkout main main-files
|
||||
|
||||
Reference in new issue
Block a user