delta: Add --if-not-exists option
I often want to have "idempotent" systems that iterate to a known state. If after generating a commit, the system is interrupted, I'd like the next run to still generate a delta. But we don't want to regenerate if one exists, hence this option. Closes: #375 Approved by: jlebon
This commit is contained in:
1 parent
8933c93a55
commit
0d07c7ecde
6 files changed
+66
-1
No files matched your search
+8
-1
@@ -82,6 +82,8 @@ get_assert_one_direntry_matching() {
|
||||
origrev=$(${CMD_PREFIX} ostree --repo=repo rev-parse test)
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo static-delta generate --empty --to=${origrev}
|
||||
${CMD_PREFIX} ostree --repo=repo static-delta generate --if-not-exists --empty --to=${origrev} > out.txt
|
||||
assert_file_has_content out.txt "${origrev} already exists"
|
||||
${CMD_PREFIX} ostree --repo=repo static-delta list | grep ${origrev} || exit 1
|
||||
${CMD_PREFIX} ostree --repo=repo prune
|
||||
${CMD_PREFIX} ostree --repo=repo static-delta list | grep ${origrev} || exit 1
|
||||
@@ -91,7 +93,12 @@ ${CMD_PREFIX} ostree --repo=repo commit -b test -s test --tree=dir=files
|
||||
|
||||
newrev=$(${CMD_PREFIX} ostree --repo=repo rev-parse test)
|
||||
|
||||
${CMD_PREFIX} ostree --repo=repo static-delta generate --from=${origrev} --to=${newrev} --inline
|
||||
${CMD_PREFIX} ostree --repo=repo static-delta generate --if-not-exists --from=${origrev} --to=${newrev} --inline
|
||||
${CMD_PREFIX} ostree --repo=repo static-delta generate --if-not-exists --from=${origrev} --to=${newrev} --inline > out.txt
|
||||
assert_file_has_content out.txt "${origrev}-${newrev} already exists"
|
||||
# Should regenerate
|
||||
${CMD_PREFIX} ostree --repo=repo static-delta generate --from=${origrev} --to=${newrev} --inline > out.txt
|
||||
assert_not_file_has_content out.txt "${origrev}-${newrev} already exists"
|
||||
|
||||
deltaprefix=$(get_assert_one_direntry_matching repo/deltas '.')
|
||||
deltadir=$(get_assert_one_direntry_matching repo/deltas/${deltaprefix} '-')
|
||||
|
||||
Reference in new issue
Block a user