A less invasive rcs
John Yates <[email protected]> Sat, 13 Feb 2021 21:38:37 -0500
| Newsgroups | gmane.comp.gnu.rcs |
|---|---|
| Message-ID | <CAJnXXogpH1v81yReYy7eYwJLfUg4TkouzydqH3vF1aA8QjdRNQ@mail.gmail.com> |
--000000000000da824f05bb42c447
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
I am brainstorming some extensions to rcs that would
- Avoid both ,v files and RCS directories in working trees
- Allow the ,v files to be stored in a fully separate tree
Today, we have two places for a working file's ,v file:
- In the working file's working directory
- In an RCS subdirectory added to that working directory
I propose a third location, a mirror of that working directory
located by searching upward, through parent directories, for
a "dominating" .rcs directory. If such a directory is found, it
contains a parallel directory structure:
.../project
=E2=94=9C=E2=94=80=E2=94=80 src
=E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 foo.c
=E2=94=82 =E2=94=94=E2=94=80=E2=94=80 bar.c
=E2=94=9C=E2=94=80=E2=94=80 inc
=E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 foo.h
=E2=94=82 =E2=94=94=E2=94=80=E2=94=80 bar.h
=E2=94=9C=E2=94=80=E2=94=80 doc
=E2=94=82 =E2=94=94=E2=94=80=E2=94=80 foo.md
=E2=94=94=E2=94=80=E2=94=80 .rcs
=E2=94=9C=E2=94=80=E2=94=80 src
=E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 foo.c,v
=E2=94=82 =E2=94=94=E2=94=80=E2=94=80 bar.c,v
=E2=94=9C=E2=94=80=E2=94=80 inc
=E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 foo.h,v
=E2=94=82 =E2=94=94=E2=94=80=E2=94=80 bar.h,v
=E2=94=94=E2=94=80=E2=94=80 doc
=E2=94=94=E2=94=80=E2=94=80 foo.md,v
How to search for a ,v file:
- Look in working file's directory
- If the working directory contains an RCS sub-directory,
then look there
- If a "dominating" .rcs directory exists, look in the
corresponding directory
Where to create a new ,v file:
- If a "dominating" .rcs directory exists, ensure existence
of a corresponding directory and create it there
- If a RCS sub-directory exists, create it there
- Create it in the working file's working directory
To provide a means of stopping the upward search for a .rcs
marker I propose a very simple .rcsstop marker.
At this point I take some inspiration from git for a separate
directory convention. This means allowing the "dominating"
.rcs marker to be a file, similar to .git. If it is a file then it is
a "file system agnostic" symbolic link to an out of tree .rcs
directory. The contents of this file is
rcsdir: <path>
Does this seem too crazy? Any implementation suggestions?
Where is the relevant search logic implemented in the rcs
source?
/john
--000000000000da824f05bb42c447
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif">I am brainstorming some extensions to rcs that would</d=
iv><div class=3D"gmail_default" style=3D""><ul style=3D"font-family:arial,h=
elvetica,sans-serif"><li>Avoid both ,v files and RCS directories in working=
trees</li><li>Allow the ,v files to be stored in a fully separate tree</li=
></ul><div style=3D"font-family:arial,helvetica,sans-serif">Today, we have =
two places for a working file's ,v file:</div><div style=3D"font-family=
:arial,helvetica,sans-serif"><ul><li>In the working file's working dire=
ctory</li><li>In an RCS subdirectory added to that working directory</li></=
ul><div>I propose a=C2=A0third location, a=C2=A0mirror of that working dire=
ctory<br>located by searching upward, through parent directories, for<br>a =
"dominating" .rcs directory.=C2=A0 If such a directory is found, =
it<br>contains a parallel directory structure:</div></div><div style=3D"fon=
t-family:arial,helvetica,sans-serif"><br></div><div style=3D""><font face=
=3D"monospace">=C2=A0 =C2=A0 .../project<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=
=94=9C=E2=94=80=E2=94=80 src<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=94=82 =C2=
=A0 =E2=94=9C=E2=94=80=E2=94=80 foo.c<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=94=
=82 =C2=A0 =E2=94=94=E2=94=80=E2=94=80 bar.c<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0=
=E2=94=9C=E2=94=80=E2=94=80 inc<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=94=82 =
=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 foo.h<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=
=94=82 =C2=A0 =E2=94=94=E2=94=80=E2=94=80 bar.h<br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =E2=94=9C=E2=94=80=E2=94=80 doc<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=94=
=82 =C2=A0 =E2=94=94=E2=94=80=E2=94=80 foo.md<br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =E2=94=94=E2=94=80=E2=94=80 .rcs<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =E2=94=9C=E2=94=80=E2=94=80 src<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =E2=94=82 =C2=A0 =E2=94=9C=E2=94=80=E2=94=80 foo.c,v<br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=94=82 =C2=A0 =E2=94=94=E2=94=80=E2=
=94=80 bar.c,v<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=94=9C=E2=94=
=80=E2=94=80 inc<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=94=82 =C2=
=A0 =E2=94=9C=E2=94=80=E2=94=80 foo.h,v<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =E2=94=82 =C2=A0 =E2=94=94=E2=94=80=E2=94=80 bar.h,v<br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=94=94=E2=94=80=E2=94=80 doc<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=94=94=E2=94=80=E2=
=94=80 foo.md,v<br></font></div><div style=3D"font-family:arial,helvetica,s=
ans-serif"><br></div><div style=3D"font-family:arial,helvetica,sans-serif">=
How to search for a ,v file:</div><div style=3D"font-family:arial,helvetica=
,sans-serif"><ul><li>Look in working file's directory</li><li>If the wo=
rking directory contains an RCS sub-directory,<br>then look there</li><li>I=
f a "dominating" .rcs directory exists, look in the<br>correspond=
ing directory</li></ul><div>Where to create a new ,v file:</div><div><ul><l=
i>If a "dominating" .rcs directory exists, ensure existence<br>of=
a corresponding directory and create it there</li><li>If a RCS sub-directo=
ry exists, create it there</li><li>Create it in the working file's work=
ing directory</li></ul></div></div><div style=3D"font-family:arial,helvetic=
a,sans-serif"><div><div class=3D"gmail_default">To provide a means of stopp=
ing the upward search for a .rcs<br>marker I propose a very simple .rcsstop=
marker.</div></div><div class=3D"gmail_default"><br></div><div class=3D"gm=
ail_default"></div></div><div style=3D"font-family:arial,helvetica,sans-ser=
if">At this point I take some inspiration from git for a separate</div><div=
style=3D"font-family:arial,helvetica,sans-serif">directory convention.=C2=
=A0 This means allowing the "dominating"</div><div style=3D"font-=
family:arial,helvetica,sans-serif">.rcs marker to be a file,=C2=A0similar t=
o .git.=C2=A0 If it is a file then it is</div><div style=3D"font-family:ari=
al,helvetica,sans-serif">a "file system agnostic" symbolic link t=
o an out of tree .rcs</div><div style=3D"font-family:arial,helvetica,sans-s=
erif">directory.=C2=A0 The contents of this file is</div><div style=3D"font=
-family:arial,helvetica,sans-serif"><br></div><div style=3D"font-family:ari=
al,helvetica,sans-serif">=C2=A0 =C2=A0 rcsdir: <path></div></div><div=
><br></div><div class=3D"gmail_default" style=3D"font-family:arial,helvetic=
a,sans-serif"><br></div><div class=3D"gmail_default" style=3D"font-family:a=
rial,helvetica,sans-serif">Does this seem too crazy?=C2=A0 Any implementati=
on suggestions?</div><div class=3D"gmail_default" style=3D"font-family:aria=
l,helvetica,sans-serif">Where is the relevant search logic implemented in t=
he rcs</div><div class=3D"gmail_default" style=3D"font-family:arial,helveti=
ca,sans-serif">source?</div><div class=3D"gmail_default" style=3D"font-fami=
ly:arial,helvetica,sans-serif"><br></div><div class=3D"gmail_default" style=
=3D"font-family:arial,helvetica,sans-serif">/john</div><div class=3D"gmail_=
default" style=3D"font-family:arial,helvetica,sans-serif"><br></div></div>
--000000000000da824f05bb42c447--