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, "Thien-Thi Nguyen&= quot; <<a href=3D"mailto:[email protected]">[email protected]</a>> 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 <<a href=3D"mailto:[email protected]">marti= [email protected]</a>><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 "desc" 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'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 "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= > "uncommon" 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, '\f', ^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> <<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>>.<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'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 <<a href=3D"http://www.gnu.org/licens= es" target=3D"_blank">http://www.gnu.org/licenses</a>>), 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--