[ostree] core: Add --no-xattrs option for commit
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ostree] core: Add --no-xattrs option for commit
- Date: Fri, 6 Jan 2012 00:12:17 +0000 (UTC)
commit 5119cbdb7c523ce44c90208da7f4c3cfdd3695e3
Author: Colin Walters <walters verbum org>
Date: Thu Jan 5 18:56:21 2012 -0500
core: Add --no-xattrs option for commit
Will be used by ostbuild.
src/libostree/ostree-repo.c | 18 ++++++++++++------
src/libostree/ostree-repo.h | 6 +++++-
src/ostree/ot-builtin-commit.c | 2 ++
tests/t0000-basic.sh | 6 +++++-
4 files changed, 24 insertions(+), 8 deletions(-)
---
diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c
index 71bf055..92d15f4 100644
--- a/src/libostree/ostree-repo.c
+++ b/src/libostree/ostree-repo.c
@@ -1452,9 +1452,12 @@ ostree_repo_stage_directory_to_mtree (OstreeRepo *self,
modified_info = create_modified_file_info (child_info, modifier);
- xattrs = ostree_get_xattrs_for_file (dir, error);
- if (!xattrs)
- goto out;
+ if (!(modifier && modifier->skip_xattrs))
+ {
+ xattrs = ostree_get_xattrs_for_file (dir, error);
+ if (!xattrs)
+ goto out;
+ }
if (!stage_directory_meta (self, modified_info, xattrs, &child_file_checksum,
cancellable, error))
@@ -1513,9 +1516,12 @@ ostree_repo_stage_directory_to_mtree (OstreeRepo *self,
goto out;
}
- xattrs = ostree_get_xattrs_for_file (child, error);
- if (!xattrs)
- goto out;
+ if (!(modifier && modifier->skip_xattrs))
+ {
+ xattrs = ostree_get_xattrs_for_file (child, error);
+ if (!xattrs)
+ goto out;
+ }
if (!stage_object_impl (self, OSTREE_OBJECT_TYPE_RAW_FILE,
modified_info, xattrs, file_input, NULL,
diff --git a/src/libostree/ostree-repo.h b/src/libostree/ostree-repo.h
index 3777d84..c1a4ebb 100644
--- a/src/libostree/ostree-repo.h
+++ b/src/libostree/ostree-repo.h
@@ -137,10 +137,14 @@ gboolean ostree_repo_load_variant (OstreeRepo *self,
typedef struct {
volatile gint refcount;
- gpointer reserved[3];
gint uid;
gint gid;
+
+ guint reserved_flags : 31;
+ guint skip_xattrs : 1;
+
+ gpointer reserved[3];
} OstreeRepoCommitModifier;
OstreeRepoCommitModifier *ostree_repo_commit_modifier_new (void);
diff --git a/src/ostree/ot-builtin-commit.c b/src/ostree/ot-builtin-commit.c
index e414a2c..8b79118 100644
--- a/src/ostree/ot-builtin-commit.c
+++ b/src/ostree/ot-builtin-commit.c
@@ -38,6 +38,7 @@ static char *branch;
static char **metadata_strings;
static gboolean skip_if_unchanged;
static gboolean tar_autocreate_parents;
+static gboolean no_xattrs;
static char **trees;
static gint owner_uid = -1;
static gint owner_gid = -1;
@@ -53,6 +54,7 @@ static GOptionEntry options[] = {
{ "tree", 0, 0, G_OPTION_ARG_STRING_ARRAY, &trees, "Overlay the given argument as a tree", "NAME" },
{ "owner-uid", 0, 0, G_OPTION_ARG_INT, &owner_uid, "Set file ownership user id", "UID" },
{ "owner-gid", 0, 0, G_OPTION_ARG_INT, &owner_gid, "Set file ownership group id", "GID" },
+ { "no-xattrs", 0, 0, G_OPTION_ARG_NONE, &no_xattrs, "Do not import extended attributes", NULL },
{ "tar-autocreate-parents", 0, 0, G_OPTION_ARG_NONE, &tar_autocreate_parents, "When loading tar archives, automatically create parent directories as needed", NULL },
{ "skip-if-unchanged", 0, 0, G_OPTION_ARG_NONE, &skip_if_unchanged, "If the contents are unchanged from previous commit, do nothing", NULL },
{ NULL }
diff --git a/tests/t0000-basic.sh b/tests/t0000-basic.sh
index 2dff8ff..1514f34 100755
--- a/tests/t0000-basic.sh
+++ b/tests/t0000-basic.sh
@@ -19,7 +19,7 @@
set -e
-echo "1..22"
+echo "1..23"
. libtest.sh
@@ -169,3 +169,7 @@ $OSTREE show test2 > test2-commit-text
assert_file_has_content test2-commit-text "'FOO'.*'BAR'"
assert_file_has_content test2-commit-text "'KITTENS'.*'CUTE'"
echo "ok metadata commit with strings"
+
+cd ${test_tmpdir}/checkout-test2-4
+$OSTREE commit -b test2 -s "no xattrs" --no-xattrs
+echo "ok commit with no xattrs"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]