Install via easy_install vadm or look at install.
You first need to create a repository for storing information about your system files:
vadm create /path/to/my/sysrepo
Afterwards you can checkout from the newly created repository:
vadm checkout file:///path/to/my/sysrepo
Note that there is no explicit working copy. In fact it will be vadm which manages that working copy and you can type:
to see your current internal REPO/WC-configuration. Multiple users can checkout from the same repository. Each of the users will have its own internal “working copy”.
For adding, committing, reverting or inquiring of files and directories you may now use svn-like commands, including their abbreviations. For example:
vadm add /etc/passwd # add this file to version-control vadm commit -m "passwords" /etc vadm log /etc/passwd # show list of commits to this file vadm status / # show status of versioned files vadm st # show status of current dir vadm help # lists all available commands
Because vadm uses subversion under the hood you can install commit notification and other hooks in your repository.
vadm needs to execute as a non-root user that has the right to execute sudo.
Here are some background notes and hints:
if you want to auto-commit nightly you may create a crontab entry like this:
59 23 * * * /usr/bin/vadm ci -m "autocommit" / >/dev/null
You can transfer your local repository to a remote location and then do a vadm checkout using an https or svn+ssh scheme.
vadm works by mapping all versioned files into a per-user working copy. Permissions and ownership information are kept in vadm:posix svn properties. The Working copy is usually kept under $USER/.vadm/hostwc. You may cd there and use svn for introspection directly.
When you issue vadm add dir/somefile vadm creates and adds a directory dir to the WC, copies the somefile to the WC and schedules it for addition.
For almost any command, vadm will internally first update the working copy files from the corresponding filesystem information. This imposes a startup overhead which is usually not noticeable on modern systems if you only deal with text configuration files.
You can always remove the Working Copy in $USER/.vadm and/or directly perform vadm checkout URL which will always remove the working copy before re-creating it. vadm can re-create all its information from the repository and the life filesystem. However, any information that only exists in the working copy (like files scheduled for addition or removal) will be lost.