cowdancer is an userland implementation of copy-on-write filesystem.
This is a screenshot of a cowdancer session.
cow-shell, a utility program is included. Invoking cow-shell will start a shell session that will protect the i-node below the current directory. Trying to write to a file within that session will result in creatin a new i-node before write, if that particular i-node is protected.
The following is a use-case:
$ tar xfz glibc*.tar.gz $ cp -al glibc-2.3.2 glibc-2.3.2.orig $ cd glibc-2.3.2 $ cow-shell Invoking /bin/bash $ vi $ ls -li NEWS 801386 -rw-r--r-- 2 dancer dancer 53267 2003-01-13 18:26 NEWS $ vi NEWS $ ls -li NEWS 2030426 -rw-r--r-- 1 dancer dancer 53272 2005-08-13 21:26 NEWS $ exit $ cd .. $ diff -ur glibc-2.3.2-orig/ glibc-2.3.2 diff -ur glibc-2.3.2-orig/NEWS glibc-2.3.2/NEWS --- glibc-2.3.2-orig/NEWS 2003-01-13 18:26:13.000000000 +0900 +++ glibc-2.3.2/NEWS 2005-08-13 21:26:46.000000000 +0900 @@ -1,3 +1,5 @@ +:wq + GNU C Library NEWS -- history of user-visible changes. 2003-1-12 Copyright (C) 1992-2002, 2003 Free Software Foundation, Inc. See the end for copying conditions.
If you are using Debian sid just do apt-get install cowdancer. It will hopefully be incorporated in Debian etch or later.
$Id: cowdancer.html.en,v 1.4 2006/06/14 13:45:43 dancer Exp $