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
|
#!/bin/more
//////////////////////////////////////////////////////////////////////
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 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 /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 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)'s instead.
CC='gcc'
The C language compiler to use.
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!
|