diff --git a/man/ostree-init.xml b/man/ostree-init.xml index 95f0b162..fb35c0da 100644 --- a/man/ostree-init.xml +++ b/man/ostree-init.xml @@ -71,6 +71,32 @@ Boston, MA 02111-1307, USA. Initialize repository in given mode (bare, bare-user, archive-z2). Default is "bare". + + + =COLLECTION-ID + + Set the collection ID of the repository. Remotes in clones + of this repository must configure the same value in order to + pull refs which originated in this repository over peer to + peer. + + This collection ID must be persistent and globally + unique. It is formatted as a reverse DNS name (like a D-Bus + interface). It must be set to a reverse DNS domain under your + control. + + This option may be omitted (the default) to leave + peer to peer distribution unsupported for the repository. A + collection ID may be added to an existing repository in + future to enable peer to peer distribution from that point + onwards. + + If the collection ID is changed for the repository + in future, peer to peer distribution of refs from the + repository will break for all peers who do not update their + remote configuration to the new collection ID. + + diff --git a/src/ostree/ot-builtin-init.c b/src/ostree/ot-builtin-init.c index 8180a8ae..0dabd458 100644 --- a/src/ostree/ot-builtin-init.c +++ b/src/ostree/ot-builtin-init.c @@ -27,9 +27,16 @@ #include "ostree.h" static char *opt_mode = "bare"; +#ifdef OSTREE_ENABLE_EXPERIMENTAL_API +static char *opt_collection_id = NULL; +#endif /* OSTREE_ENABLE_EXPERIMENTAL_API */ static GOptionEntry options[] = { { "mode", 0, 0, G_OPTION_ARG_STRING, &opt_mode, "Initialize repository in given mode (bare, archive-z2)", NULL }, +#ifdef OSTREE_ENABLE_EXPERIMENTAL_API + { "collection-id", 0, 0, G_OPTION_ARG_STRING, &opt_collection_id, + "Globally unique ID for this repository as an collection of refs for redistribution to other repositories", "COLLECTION-ID" }, +#endif /* OSTREE_ENABLE_EXPERIMENTAL_API */ { NULL } }; @@ -48,6 +55,10 @@ ostree_builtin_init (int argc, char **argv, GCancellable *cancellable, GError ** if (!ostree_repo_mode_from_string (opt_mode, &mode, error)) goto out; +#ifdef OSTREE_ENABLE_EXPERIMENTAL_API + if (!ostree_repo_set_collection_id (repo, opt_collection_id, error)) + goto out; +#endif /* OSTREE_ENABLE_EXPERIMENTAL_API */ if (!ostree_repo_create (repo, mode, NULL, error)) goto out;