bin/refs: Allow overwriting existing ref

Currently if you want to update a non-alias ref, you need to first check
if it exists and use either `ostree refs --create` or `ostree reset` as
appropriate. That's unnecessarily complicated and is much less
convenient than the old `write-refs` builtin that simply called
`ostree_repo_set_ref_immediate()` without any checks.

Add a `--force` option to be used with `--create` that does not raise an
error when the destination ref already exists.

Closes: #1870
Approved by: jlebon
This commit is contained in:
Dan Nicholson authored and Atomic Bot committed 2019-06-12 15:00:19 +00:00
1 parent 6733843f87
commit d916383953
4 files changed
+23 -3

No files matched your search

+5
View File
@@ -90,6 +90,11 @@ if ${CMD_PREFIX} ostree --repo=repo refs foo/ctest --create=ctest; then
assert_not_reached "refs --create unexpectedly succeeded in overwriting an existing prefix!"
fi
# Force overwriting ctest and check the revision got updated
foo_ctest_rev=$(${CMD_PREFIX} ostree --repo=repo rev-parse foo/ctest)
${CMD_PREFIX} ostree --repo=repo refs foo/ctest --create=ctest --force
assert_ref repo ctest ${foo_ctest_rev}
# https://github.com/ostreedev/ostree/issues/1285
# One tool was creating .latest_rsync files in each dir, let's ignore stuff like
# that.