lib/repo: Add API to create and list ref aliases
There are multiple use cases where we'd like to alias refs. First, having a "stable" alias which gets swapped across major versions: https://pagure.io/atomic-wg/issue/228 Another case is when a ref is obsoleted; <https://pagure.io/atomic-wg/issue/303> This second one could be done with endoflife rebase, but I think this case is better on the server side, as we might later change our minds and do actual releases there. I initially just added some test cases for symlinks in the `refs/heads` dir to ensure this actually works (and it did), but I think it's worth having APIs. Closes: #1033 Approved by: jlebon
This commit is contained in:
1 parent
d1eb909cd0
commit
d5273b34d0
8 files changed
+213
-33
No files matched your search
@@ -1451,7 +1451,31 @@ ostree_repo_set_ref_immediate (OstreeRepo *self,
|
||||
GError **error)
|
||||
{
|
||||
const OstreeCollectionRef _ref = { NULL, (gchar *) ref };
|
||||
return _ostree_repo_write_ref (self, remote, &_ref, checksum,
|
||||
return _ostree_repo_write_ref (self, remote, &_ref, checksum, NULL,
|
||||
cancellable, error);
|
||||
}
|
||||
|
||||
/**
|
||||
* ostree_repo_set_alias_ref_immediate:
|
||||
* @self: An #OstreeRepo
|
||||
* @remote: (allow-none): A remote for the ref
|
||||
* @ref: The ref to write
|
||||
* @target: (allow-none): The ref target to point it to, or %NULL to unset
|
||||
* @cancellable: GCancellable
|
||||
* @error: GError
|
||||
*
|
||||
* Like ostree_repo_set_ref_immediate(), but creates an alias.
|
||||
*/
|
||||
gboolean
|
||||
ostree_repo_set_alias_ref_immediate (OstreeRepo *self,
|
||||
const char *remote,
|
||||
const char *ref,
|
||||
const char *target,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
const OstreeCollectionRef _ref = { NULL, (gchar *) ref };
|
||||
return _ostree_repo_write_ref (self, remote, &_ref, NULL, target,
|
||||
cancellable, error);
|
||||
}
|
||||
|
||||
@@ -1483,7 +1507,7 @@ ostree_repo_set_collection_ref_immediate (OstreeRepo *self,
|
||||
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE);
|
||||
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
||||
|
||||
return _ostree_repo_write_ref (self, NULL, ref, checksum,
|
||||
return _ostree_repo_write_ref (self, NULL, ref, checksum, NULL,
|
||||
cancellable, error);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user