summaryrefslogtreecommitdiff
path: root/README
blob: c245a78b1c7b1324204c74d818830184eb839b4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
//////////////////////////////////////////////////////////////////////
                               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 <LukeShu@sbcglobal.net>