[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RCS internals
From: |
Aaron S. Hawley |
Subject: |
Re: RCS internals |
Date: |
Fri, 19 Nov 2004 11:00:27 -0500 (EST) |
Dear Rupesh,
I'm not sure there's anything like a "module" in RCS's source code. I'm
not very familiar with the code so I could be mistaken. And there is no
design document in existence that I know of (There isn't even a full user
manual that is freely available for RCS), besides the source code itself.
The closest thing to a module in RCS's source code is its use of the
diffutils package for the actual file differencing. But some potential
"modules" are RCS's time-related functions(rcstime.c, maketime.c,
partime.c), also the RCS file input (rcslex.c, rcssyn.c) and output
(rcsedit.c) system, and revision file output (rcsgen.c).
I came up with the above information by simply looking at the comments on
the first line of all the C source files, which can be down efficiently by
running the following command inside of the RCS source directory:
head -1 src/*.c
In your example, running `co -l sample.c` runs co.c, which includes
rcsbase.h, and then its really up to you to try to trace the flow of the
program, or even use a debugger to step through it.
You could try contacting one of the past developers and see if they have
anything they could show you.
Happy hacking,
/a
On Fri, 19 Nov 2004, Rupesh Shantamurty wrote:
> Hi /a
> Thanks for your detailed response. I got the Source of RCS and
> installed it on my windows desktop using Cygwin (used the appropriate
> patches also) . It's working fine now.
> I wanted to know the internals of RCS.
> 1.What are it's modules?
> 2.What modules get accessed and what data structures get modified when
> one executes a command
> e.g. What happens internally when one executes % co -l sample.c.
>
> I wanted a kind of Design document for RCS. Since it's open source. I
> wanted to analyse it's code and modify it.
> Can you guide me as to where can I get a design document kind of
> information for RCS?
>
> Regards,
> Rupesh Shantamurty
>
> On Thu, 18 Nov 2004 10:57:47 -0500 (EST), Aaron S. Hawley
> <address@hidden> wrote:
> > On Thu, 18 Nov 2004, Rupesh Shantamurty wrote:
> >
> > > Hi
> > > Can someone please tell me the internals of RCS. I want to know how it
> > > works.
> >
> > To learn how RCS[1] works read the paper[2] by Walter Tichy[3], who
> > originally designed and developed RCS, which comes in the source
> > distribution[4] of RCS.
> >
> > Because RCS is free software[5], you can (among other things) read the
> > actual source code and tinker with it to see how it works. My own
> > experience is that one shouldn't spend too much time because it's not
> > clearly written C code. It appears even Tichy decided to rewrite his
> > proprietary implementation[6] of RCS in Java and C/C++.
> >
> > Happy hacking,
> > /a
> >
> > References
> >
> > [1] http://www.gnu.org/software/rcs/
> >
> > [2] Tichy's paper is available at Citeseer:
> > <http://citeseer.ist.psu.edu/tichy91rc.html>, and an HTML version is
> > located here <http://www.uvm.edu/~ashawley/rcs/tichy1985rcs/html/>.
> >
> > [3] Walter F. Tichy's Current home page <http://wwwipd.ira.uka.de/~tichy/>
> >
> > [4] Source code available from <ftp://ftp.gnu.org/gnu/rcs/>
> >
> > [5] http://www.gnu.org/philosophy/free-sw.html
> >
> > [6] Revision Control Engine (RCE) <http://www.aicas.com/rce.html>
> >
> > >
> > > Regards
> > > Rupesh Shantamurty
--
If this helped you, please take the time to rate the value of this post:
http://rate.affero.net/ashawley/FSF