Re: Feature request (with patch)

"Aaron S. Hawley" <[email protected]> Mon, 10 Sep 2012 08:58:12 -0400
Newsgroups gmane.comp.gnu.rcs
Message-ID <CAFw1JJ5eNx8FOQHZ4MV39Ptau_tRXJYWiw30sHOAtvx1xRAb=w@mail.gmail.com>
--14dae9340683a7557f04c95882a5
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Martin,

Since the information is just being ignored, why not just write a utility
that converts proprietary RCS files to GNU RCS format rather than adding
support for arbitrary sections?

Sincerely,
Aaron
 On Sep 10, 2012 7:49 AM, "Thien-Thi Nguyen" <[email protected]> wrote:

> () Martin Burnicki <[email protected]>
> () Tue, 28 Aug 2012 13:17:06 +0200
>
>    [...]
>
>    ext
>    @project g:/mbglib/mbglib.pj;
>    project /repository/clkdrv/linux/soft/mbgclock/mbgclock.pj;
>    project g:/clkdrv/win_2k/soft/sys/mbgclock/mbgclock.pj;
>    @
>
>    This section is located before the "desc" section of an archive file.
>
>    The current version of GNU rcs is unable to access archive files
>    which have such section since the section type is not supported, so
>    Hannes K=FCttner, whom I've added in CC:, has made a patch which
>    detects unknown sections when an archive file is read, and simply
>    writes the unknown sections back when the archive file is rewritten.
>
>    [ref mbg_rcs_unexpected_keywords.patch]
>
> Thanks for the patch.  Although RCS hungers for users, my immediate
> reaction is to regretfully point out that the comma-v syntax is frozen
> (see 5.8 NEWS) in preparation for yet-unspecified "integrity features",
> and thus reject it as it stands.
>
> That said, i now view that decision to be incomplete in that it left no
> clean way to add user-defined extensions, aside from hijacking the
> =91integrity=92 header directly.  To DTRT, i think we need to specify tha=
t
> =91integrity=92 be composed of a system part and a user part, the latter
> opaque (pass-through) to RCS.  These parts should be separated by some
> "uncommon" byte (something in [0x01,0x1F], ideally), with the system
> part coming first, and the user part (and sep byte) optional.
>
> Some examples, w/ formfeed (ASCII 0x0C, '\f', ^L) as the sep byte:
>
> - degenerate
>   integrity @@;
>
> - degenerate w/ user part
>   integrity @^L@;
>
> - degenerate system part, non-degenerate user part
>   integrity @^L
>     project g:/mbglib/mbglib.pj;
>     project /repository/clkdrv/linux/soft/mbgclock/mbgclock.pj;
>     project g:/clkdrv/win_2k/soft/sys/mbgclock/mbgclock.pj;
>   @;
>
> Thus, the overall change is to push user data out of the top-level, and
> into the second-half of =91integrity=92, a conceptually consistent (IMHO)
> location that satisfies forward compatability (at the cost of having to
> manually convert some comma-v files via a sed script).
>
> What do you think?  FYI, prior discussion on the system part is at:
> <http://lists.gnu.org/archive/html/help-rcs/2012-07/msg00000.html>.
>
>    [t300 workaround]
>
> If user data is part of =91integrity=92, t300 should pass w/o modificatio=
n.
>
>    Hannes K=FCttner has also rewritten the complete graphical user
>    interface in python3, so there's also a modern front end available
>    for the current version of GNU rcs.
>
>    If someone is interested we can send them a copy of the python GUI.
>
> Long-term RCS will provide a shared-object library (and API), but stop
> short of a graphical interface.  If your code and its documentation are
> available under free licenses (see <http://www.gnu.org/licenses>), i
> would be happy to add a link to its homepage from the RCS homepage.
>
> --
> Thien-Thi Nguyen ..................................... GPG key: 4C807502
> .                  NB: ttn at glug dot org is not me                   .
> .                 (and has not been since 2007 or so)                  .
> .                        ACCEPT NO SUBSTITUTES                         .
> ........... please send technical questions to mailing lists ...........
>

--14dae9340683a7557f04c95882a5
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<p>Martin,</p>
<p>Since the information is just being ignored, why not just write a utilit=
y that converts proprietary RCS files to GNU RCS format rather than adding =
support for arbitrary sections?</p>
<p>Sincerely,<br>
Aaron<br>
</p>
<div class=3D"gmail_quote">On Sep 10, 2012 7:49 AM, &quot;Thien-Thi Nguyen&=
quot; &lt;<a href=3D"mailto:[email protected]">[email protected]</a>&gt; wrote:=
<br type=3D"attribution"><blockquote class=3D"gmail_quote" style=3D"margin:=
0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
() Martin Burnicki &lt;<a href=3D"mailto:[email protected]">marti=
[email protected]</a>&gt;<br>
() Tue, 28 Aug 2012 13:17:06 +0200<br>
<br>
=A0 =A0[...]<br>
<br>
=A0 =A0ext<br>
=A0 =A0@project g:/mbglib/mbglib.pj;<br>
=A0 =A0project /repository/clkdrv/linux/soft/mbgclock/mbgclock.pj;<br>
=A0 =A0project g:/clkdrv/win_2k/soft/sys/mbgclock/mbgclock.pj;<br>
=A0 =A0@<br>
<br>
=A0 =A0This section is located before the &quot;desc&quot; section of an ar=
chive file.<br>
<br>
=A0 =A0The current version of GNU rcs is unable to access archive files<br>
=A0 =A0which have such section since the section type is not supported, so<=
br>
=A0 =A0Hannes K=FCttner, whom I&#39;ve added in CC:, has made a patch which=
<br>
=A0 =A0detects unknown sections when an archive file is read, and simply<br=
>
=A0 =A0writes the unknown sections back when the archive file is rewritten.=
<br>
<br>
=A0 =A0[ref mbg_rcs_unexpected_keywords.patch]<br>
<br>
Thanks for the patch. =A0Although RCS hungers for users, my immediate<br>
reaction is to regretfully point out that the comma-v syntax is frozen<br>
(see 5.8 NEWS) in preparation for yet-unspecified &quot;integrity features&=
quot;,<br>
and thus reject it as it stands.<br>
<br>
That said, i now view that decision to be incomplete in that it left no<br>
clean way to add user-defined extensions, aside from hijacking the<br>
=91integrity=92 header directly. =A0To DTRT, i think we need to specify tha=
t<br>
=91integrity=92 be composed of a system part and a user part, the latter<br=
>
opaque (pass-through) to RCS. =A0These parts should be separated by some<br=
>
&quot;uncommon&quot; byte (something in [0x01,0x1F], ideally), with the sys=
tem<br>
part coming first, and the user part (and sep byte) optional.<br>
<br>
Some examples, w/ formfeed (ASCII 0x0C, &#39;\f&#39;, ^L) as the sep byte:<=
br>
<br>
- degenerate<br>
=A0 integrity @@;<br>
<br>
- degenerate w/ user part<br>
=A0 integrity @^L@;<br>
<br>
- degenerate system part, non-degenerate user part<br>
=A0 integrity @^L<br>
=A0 =A0 project g:/mbglib/mbglib.pj;<br>
=A0 =A0 project /repository/clkdrv/linux/soft/mbgclock/mbgclock.pj;<br>
=A0 =A0 project g:/clkdrv/win_2k/soft/sys/mbgclock/mbgclock.pj;<br>
=A0 @;<br>
<br>
Thus, the overall change is to push user data out of the top-level, and<br>
into the second-half of =91integrity=92, a conceptually consistent (IMHO)<b=
r>
location that satisfies forward compatability (at the cost of having to<br>
manually convert some comma-v files via a sed script).<br>
<br>
What do you think? =A0FYI, prior discussion on the system part is at:<br>
&lt;<a href=3D"http://lists.gnu.org/archive/html/help-rcs/2012-07/msg00000.=
html" target=3D"_blank">http://lists.gnu.org/archive/html/help-rcs/2012-07/=
msg00000.html</a>&gt;.<br>
<br>
=A0 =A0[t300 workaround]<br>
<br>
If user data is part of =91integrity=92, t300 should pass w/o modification.=
<br>
<br>
=A0 =A0Hannes K=FCttner has also rewritten the complete graphical user<br>
=A0 =A0interface in python3, so there&#39;s also a modern front end availab=
le<br>
=A0 =A0for the current version of GNU rcs.<br>
<br>
=A0 =A0If someone is interested we can send them a copy of the python GUI.<=
br>
<br>
Long-term RCS will provide a shared-object library (and API), but stop<br>
short of a graphical interface. =A0If your code and its documentation are<b=
r>
available under free licenses (see &lt;<a href=3D"http://www.gnu.org/licens=
es" target=3D"_blank">http://www.gnu.org/licenses</a>&gt;), i<br>
would be happy to add a link to its homepage from the RCS homepage.<br>
<br>
--<br>
Thien-Thi Nguyen ..................................... GPG key: 4C807502<br=
>
. =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0NB: ttn at glug dot org is not me =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 .<br>
. =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (and has not been since 2007 or so) =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0.<br>
. =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ACCEPT NO SUBSTITUTES =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 .<br>
........... please send technical questions to mailing lists ...........<br=
>
</blockquote></div>

--14dae9340683a7557f04c95882a5--