diff --git a/Makefile-tests.am b/Makefile-tests.am index f9c0f512..46bf4996 100644 --- a/Makefile-tests.am +++ b/Makefile-tests.am @@ -46,6 +46,7 @@ testfiles = test-basic \ test-admin-instutil-set-kargs \ test-admin-upgrade-not-backwards \ test-repo-checkout-subpath \ + test-reset-nonlinear \ test-setuid \ test-delta \ test-xattrs \ diff --git a/src/ostree/ot-builtin-reset.c b/src/ostree/ot-builtin-reset.c index a09e9a4f..71655438 100644 --- a/src/ostree/ot-builtin-reset.c +++ b/src/ostree/ot-builtin-reset.c @@ -49,38 +49,6 @@ find_current_ref (OstreeRepo *repo, return ret; } -static gboolean -check_revision_is_parent (OstreeRepo *repo, - const char *descendant, - const char *ancestor, - GCancellable *cancellable, - GError **error) -{ - gs_free char *parent = NULL; - gs_unref_variant GVariant *variant = NULL; - gboolean ret = FALSE; - - if (!ostree_repo_load_variant (repo, OSTREE_OBJECT_TYPE_COMMIT, - descendant, &variant, error)) - goto out; - - parent = ostree_commit_get_parent (variant); - if (!parent) - { - g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, - "The ref does not have this commit as an ancestor: %s", ancestor); - goto out; - } - - if (!g_str_equal (parent, ancestor) && - !check_revision_is_parent (repo, parent, ancestor, cancellable, error)) - goto out; - - ret = TRUE; -out: - return ret; -} - gboolean ostree_builtin_reset (int argc, char **argv, @@ -118,9 +86,6 @@ ostree_builtin_reset (int argc, if (current == NULL) goto out; - if (!check_revision_is_parent (repo, current, checksum, cancellable, error)) - goto out; - if (!ostree_repo_prepare_transaction (repo, NULL, cancellable, error)) goto out; diff --git a/tests/test-reset-nonlinear.sh b/tests/test-reset-nonlinear.sh new file mode 100755 index 00000000..1d0f8de6 --- /dev/null +++ b/tests/test-reset-nonlinear.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# +# Copyright (C) 2015 Colin Walters +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +set -e + +echo "1..1" + +. $(dirname $0)/libtest.sh + +setup_test_repository "archive-z2" +cd ${test_tmpdir}/files +$OSTREE commit -b testx -s "Another Commit" +cd ${test_tmpdir} +$OSTREE reset test2 testx + +echo "ok reset nonlinear"