Blame man/rofiles-fuse.xml

Packit Service 2a3f3d
 
Packit Service 2a3f3d
Packit Service 2a3f3d
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
Packit Service 2a3f3d
Packit Service 2a3f3d
Packit Service 2a3f3d
Copyright 2016 Colin Walters <walters@verbum.org>
Packit Service 2a3f3d
Packit Service 2a3f3d
SPDX-License-Identifier: LGPL-2.0+
Packit Service 2a3f3d
Packit Service 2a3f3d
This library is free software; you can redistribute it and/or
Packit Service 2a3f3d
modify it under the terms of the GNU Lesser General Public
Packit Service 2a3f3d
License as published by the Free Software Foundation; either
Packit Service 2a3f3d
version 2 of the License, or (at your option) any later version.
Packit Service 2a3f3d
Packit Service 2a3f3d
This library is distributed in the hope that it will be useful,
Packit Service 2a3f3d
but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 2a3f3d
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 2a3f3d
Lesser General Public License for more details.
Packit Service 2a3f3d
Packit Service 2a3f3d
You should have received a copy of the GNU Lesser General Public
Packit Service 2a3f3d
License along with this library; if not, write to the
Packit Service 2a3f3d
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit Service 2a3f3d
Boston, MA 02111-1307, USA.
Packit Service 2a3f3d
-->
Packit Service 2a3f3d
Packit Service 2a3f3d
<refentry id="ostree">
Packit Service 2a3f3d
Packit Service 2a3f3d
    <refentryinfo>
Packit Service 2a3f3d
        <title>rofiles-fuse</title>
Packit Service 2a3f3d
        <productname>rofiles-fuse</productname>
Packit Service 2a3f3d
Packit Service 2a3f3d
        <authorgroup>
Packit Service 2a3f3d
            <author>
Packit Service 2a3f3d
                <contrib>Developer</contrib>
Packit Service 2a3f3d
                <firstname>Colin</firstname>
Packit Service 2a3f3d
                <surname>Walters</surname>
Packit Service 2a3f3d
                <email>walters@verbum.org</email>
Packit Service 2a3f3d
            </author>
Packit Service 2a3f3d
        </authorgroup>
Packit Service 2a3f3d
    </refentryinfo>
Packit Service 2a3f3d
Packit Service 2a3f3d
    <refmeta>
Packit Service 2a3f3d
        <refentrytitle>rofiles-fuse</refentrytitle>
Packit Service 2a3f3d
        <manvolnum>1</manvolnum>
Packit Service 2a3f3d
    </refmeta>
Packit Service 2a3f3d
Packit Service 2a3f3d
    <refnamediv>
Packit Service 2a3f3d
        <refname>rofiles-fuse</refname>
Packit Service 2a3f3d
        <refpurpose>Use FUSE to create a view where directories are writable, files are immutable</refpurpose>
Packit Service 2a3f3d
    </refnamediv>
Packit Service 2a3f3d
Packit Service 2a3f3d
    <refsynopsisdiv>
Packit Service 2a3f3d
      <cmdsynopsis>
Packit Service 2a3f3d
        <command>rofiles-fuse SRCDIR MNTPOINT</command>
Packit Service 2a3f3d
      </cmdsynopsis>
Packit Service 2a3f3d
    </refsynopsisdiv>
Packit Service 2a3f3d
Packit Service 2a3f3d
    <refsect1>
Packit Service 2a3f3d
        <title>Description</title>
Packit Service 2a3f3d
Packit Service 2a3f3d
        <para>
Packit Service 2a3f3d
	  Creating a checkout from an OSTree repository by default
Packit Service 2a3f3d
	  uses hard links, which means an in-place mutation to any
Packit Service 2a3f3d
	  file corrupts the repository and all checkouts.  This can be
Packit Service 2a3f3d
	  problematic if one wishes to run arbitrary programs against
Packit Service 2a3f3d
	  such a checkout.  For example, RPM <literal>%post</literal>
Packit Service 2a3f3d
	  scripts or equivalent.
Packit Service 2a3f3d
	</para>
Packit Service 2a3f3d
Packit Service 2a3f3d
	<para>
Packit Service 2a3f3d
	  In the case where one wants to create a tree commit derived
Packit Service 2a3f3d
	  from other content, using <command>rofiles-fuse</command> in
Packit Service 2a3f3d
	  concert with <command>ostree commit
Packit Service 2a3f3d
	  --link-checkout-speedup</command> (or the underlying API)
Packit Service 2a3f3d
	  can ensure that only new files are checksummed.
Packit Service 2a3f3d
	</para>
Packit Service 2a3f3d
	  
Packit Service 2a3f3d
    </refsect1>
Packit Service 2a3f3d
Packit Service 2a3f3d
    <refsect1>
Packit Service 2a3f3d
        <title>Example: Update an OSTree commit</title>
Packit Service 2a3f3d
	<programlisting>
Packit Service 2a3f3d
# Initialize a checkout and mount
Packit Service 2a3f3d
$ ostree --repo=repo checkout somebranch branch-checkout
Packit Service 2a3f3d
$ mkdir mnt
Packit Service 2a3f3d
$ rofiles-fuse branch-checkout mnt
Packit Service 2a3f3d
Packit Service 2a3f3d
# Now, arbitrary changes to mnt/ are reflected in branch-checkout
Packit Service 2a3f3d
$ echo somenewcontent > mnt/anewfile
Packit Service 2a3f3d
$ mkdir mnt/anewdir
Packit Service 2a3f3d
$ rm mnt/someoriginalcontent -rf
Packit Service 2a3f3d
Packit Service 2a3f3d
# Commit and cleanup
Packit Service 2a3f3d
$ fusermount -u mnt
Packit Service 2a3f3d
$ ostree --repo=repo commit --link-checkout-speedup -b somebranch -s 'Commit new content' --tree=dir=branch-checkout
Packit Service 2a3f3d
$ rm mnt branch-checkout -rf
Packit Service 2a3f3d
	</programlisting>
Packit Service 2a3f3d
    </refsect1>
Packit Service 2a3f3d
Packit Service 2a3f3d
    <refsect1>
Packit Service 2a3f3d
        <title>See Also</title>
Packit Service 2a3f3d
        <para>
Packit Service 2a3f3d
            <citerefentry><refentrytitle>ostree</refentrytitle><manvolnum>1</manvolnum></citerefentry>
Packit Service 2a3f3d
        </para>
Packit Service 2a3f3d
    </refsect1>
Packit Service 2a3f3d
</refentry>