core: INCOMPATIBLE CHANGE: Split archive files in two parts (meta and content)

This will allow us to have hardlink checkouts of archives.  A key use
case here is an archive repo of an OS (with root-owned files etc.)
where we want to do builds in a user tree.

A positive side effect of doing things this way is that now the SHA256
checksums for a given file should be identical regardless of whether
it's stored in an archive or bare repository.
This commit is contained in:
Colin Walters committed 2011-12-15 13:14:06 -05:00
1 parent ecbffd4915
commit 9a71ab187d
10 files changed
+806 -678

No files matched your search

+27 -8
View File
@@ -79,17 +79,36 @@ GFile * ostree_repo_get_object_path (OstreeRepo *self,
GFile * ostree_repo_get_file_object_path (OstreeRepo *self,
const char *object);
gboolean ostree_repo_store_archived_file (OstreeRepo *self,
const char *expected_checksum,
const char *path,
OstreeObjectType objtype,
gboolean *did_exist,
GError **error);
gboolean ostree_repo_prepare_transaction (OstreeRepo *self,
GCancellable *cancellable,
GError **error);
gboolean ostree_repo_commit_transaction (OstreeRepo *self,
GCancellable *cancellable,
GError **error);
gboolean ostree_repo_has_object (OstreeRepo *self,
OstreeObjectType objtype,
const char *checksum,
gboolean *out_have_object,
GCancellable *cancellable,
GError **error);
gboolean ostree_repo_store_object (OstreeRepo *self,
OstreeObjectType objtype,
const char *expected_checksum,
GFileInfo *file_info,
GVariant *xattrs,
GInputStream *content,
GCancellable *cancellable,
GError **error);
gboolean ostree_repo_store_object_trusted (OstreeRepo *self,
GFile *file,
const char *checksum,
OstreeObjectType objtype,
const char *checksum,
GFileInfo *file_info,
GVariant *xattrs,
GInputStream *content,
GCancellable *cancellable,
GError **error);