summaryrefslogtreecommitdiff
path: root/README
blob: 790d9f6aba8a1f1f9239a26a4eb07c019280e9e7 (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
//////////////////////////////////////////////////////////////////////
	rvs - retroactive versioning system
	                  versioning system that allows you to check
	                  in commit 2 before commit 1
//////////////////////////////////////////////////////////////////////

CONTENTS:
	1 ) Introduction
	2 ) Building
	2.1 ) configuration

//////////////////////////////////////////////////////////////////////
== 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?

== 2: 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.

=== 2.1: Configuration
There are several configuration variables that can be set. The default
values are kept in the file `Variables'.

Variables is in the format `VAR_NAME<tab>VALUE'.  You can modify these
configuration variables by editing the `Variables' file directly, or
by running ./configure such as:
	$ ./configure --VAR_NAME=VALUE

The different configuration variables are as follows:
VER	value='0.6.0'
	rvs's internal varsion number
SHELL	value='/usr/bin/env bash'
	the shell that scripts will be run in.
prefix	value="$HOME"
	where the files will be installed.  For me the defualt is
	`/home/luke'.  Many of you will want to change this to '/usr'
bindir	value='bin'
	the binaries folder inside the prefix.  If I leave the prefix
	and bindir the same, for me rvs is installed in
	`/home/luke/bin'.  If I change prefix to '/usr', then rvs will
	be installed in `/usr/bin'
libdir	value='/etc/rvs/'
	where the rvs libraries will be installed.
	in rvs almost nothing is actually done int the core binary
	([$prefix]/[$bindir]/rvs) but option handling.  All the real
	work is done in modular sub-programs.  I call them libraries,
	even though they are independend programs that communicate via
	pipes.

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