summaryrefslogtreecommitdiff
path: root/README
blob: fc90d89602eb89cb3b36289eb674d83fa810fa2d (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
96
97
98
#!/bin/more
//////////////////////////////////////////////////////////////////////
                               rvs 0.6.3
	retroactive versioning system
	          a versioning system that allows you to check
	            in commit 2 before commit 1
//////////////////////////////////////////////////////////////////////

introduction

   The name is a little bit of a nod to RCS (revision control
   system), and even less to CVS. I'm not particularly fond of CVS,
   but recognize it's impact on the scm scene.

   rvs is about being able to go back and edit *anything* that has
   already been committed. Yes, some other SCMs do this, but fuck
   things proper 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 GNU bash, 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 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. This is not nescessary in
   rvs , all the created file are put in another directory anyway.
   If you would still 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) instead.
   	RVS='$(bindir)/$(rvs)'
   		Where the exectuable 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.

~ Luke Shumaker <LukeShu@sbcglobal.net>
Happy Hacking!