[ostree] core: Add --no-xattrs option for commit



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]