////////////////////////////////////////////////////////////////////// rvs 0.8c r54 retroactive versioning system a versioning system that allows you to check in commit 2 before commit 1 ////////////////////////////////////////////////////////////////////// introduction rvs is about being able to go back and edit *anything* that has already been committed. Yes, some other SCMs do this, but get nasty if someone else has a copy of the old version. Why would you want to do this? Take for example the Bazaar repository rvs is hosted on: It starts at 0.6.0, what if I later want to import 0.0.0 - 0.5.10? Or if I'm trying to construct a history of BSD, and import all the BSDs I can find, such as 1,3,4, then latter find 2? system requirements Pretty much any *nix system should be able to run rvs. If you need to use a shell other than `/bin/sh`, run `./configure` with the `--SHELL=YOUR_SHELL` option. rvs is not designed for Windows, but should be able to run in bash if you have some *nix pack installed. To my knowledge, this is the absolute requirements (all but the shell need to be in your PATH): * a POSIX shell (tested with dash, and GNU BASH) * cat (included in GNU Core Utils) * cp (included in GNU Core Utils) * cut (included in GNU Core Utils) * echo (included in GNU Core Utils) * mkdir (included in GNU Core Utils) * rm (included in GNU Core Utils) * sed (included in GNU Core Utils) * sha1sum (included in GNU Core Utils) * tempfile (included in GNU Core Utils) * tr (included in GNU Core Utils) building rvs doesn't exactly use the GNU build system, but acts much like it does. To build rvs with default configuration, simply run: $ ./configure $ make # make install It's generally considered good practice to build in another directory than the source directory. If you would like to do this, it can be done in rvs-0.6.1 and up. Configuration There are several configuration variables that can be set. You can modify these configuration variables by running `./configure` such as: $ ./configure --VAR_NAME=VALUE The different configuration variables are as follows: name='rvs' The name of the program. Note that unlike most variables, you should NOT call this in Makefiles (`$(name)'), but use `$(rvs)'s instead. CC='gcc' The C language compiler to use. RVS='$(bindir)/$(rvs)' Where the executable will be. `$(rvs)' is the same as `$(name)' (see above) SHELL='/bin/sh' The shell that will be used by make, and the shell that scripts will run in. (Perhaps we should make these separate variables?) prefix='/usr/local' Standard GNU variable. Many of you will want to change this to `/usr', or `/home/USER_NAME' exec_prefix='$(prefix)' Standard GNU variable. bindir='$(exec_prefix)/bin' Standard GNU variable. sbindir='$(exec_prefix)/sbin' Standard GNU variable. libexecdir='$(exec_prefix)/libexec' Standard GNU variable. The plugins will be installed at $(libexecdir)/$(name) srcdir=$(readlink -f `dirname "$0"`) Where the source code is. The default value evaluates to the directory of the `configure' script. -- Happy hacking! ~ Luke Shumaker