Man page - cow-shell(1)

Packages contains this manual

Manual

cow-shell

NAME
SYNOPSIS
DESCRIPTION
EXAMPLES
FILES
ENVIRONMENT
RETURN VALUE
RESTRICTIONS
AUTHOR
SEE ALSO

NAME

cow-shell - Start a copy-on-write session and invoke a shell.

SYNOPSIS

cow-shell [ commandline ]

DESCRIPTION

cow-shell Executes specified command with cowdancer or a shell if no command-line option is given.

Inside the cowdancer session, files under the current directory are protected in a way so that a write operation to an i-node which existed at the point of running cow-shell is not modified.

Useful for managing hard-linked source-trees and scratch-filesystems.

EXAMPLES

cp -al cowdancer/ cowdancer.new && cd cowdancer.new && cow-shell

Create a hardlinked tree, and cd into the newly created tree. After invoking cow-shell inside that tree, a write operation against a file that is hardlinked with the original tree will be copied to a new file before write.

cp -al cowdancer/ cowdancer.new && cd cowdancer.new && cow-shell
debuild

Tries to run dpkg-buildpackage on the new tree, to avoid damage to the original tree.

Configure debuild to ignore .ilist files, through -i or -I option.

FILES

.ilist

Generated dynamically in the current directory. The file contains the list of i-node numbers that should be protected from write operation.

/usr/lib/cowdancer/libcowdancer.so

The shared library used internally that overrides some functions that potentially write to files. This library implements the COW feature and is preloaded with LD_PRELOAD.

/bin/cp

Used for copying. Requires GNU option -a to be functional.

ENVIRONMENT

COWDANCER_ILISTFILE

The path to the current .ilist file.

COWDANCER_IGNORE

Used internally to work around infinite loops. It will be unset.

LD_PRELOAD

Utilized to preload libcowdancer.so

COWDANCER_DEBUG

Debugging option. Enables debug messages. cowdancer will give verbose debug messages in standard error output.

COWDANCER_SO

Debugging option. Specifies a different path for libcowdancer.so.

COWDANCER_REUSE=yes

Enables reuse of cowdancer .ilist file found for consecutive runs of cow-shell.

RETURN VALUE

The functions that are overridden with cowdancer will give an errno value of ENOMEM when there is a problem.

System isnโ€™t really out of memory, but this error code is chosen because this error is usually handled gracefully by applications.

RESTRICTIONS

Can only support directories that are scanned by cow-shell command.

The operation is not semantically correct when files are originally hardlinked, hardlinks are always broken.

Does not support anything when LD_PRELOAD trick does not work.

Does not work unless hardlinks are supported on the filesystem.

Not very user-friendly.

Leaves .ilist file around.

AUTHOR

Junichi Uekawa (dancer@debian.org)

Upstream page is available at http://www.netfort.gr.jp/หœdancer/software/cowdancer.html

SEE ALSO

cowdancer-ilistcreate ( 1 )