Re: Feature request (with patch)
Martin Burnicki <[email protected]> Mon, 10 Sep 2012 15:27:11 +0200
| Newsgroups | gmane.comp.gnu.rcs |
|---|---|
| Organization | Meinberg Funkuhren, Bad Pyrmont, Germany |
| Message-ID | <[email protected]> |
Thien-Thi Nguyen 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 fil= e. > > 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=C3=BCttner, 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. OK, but it's a pity since we can't use GNU RCS without this patch. It=20 would have been easier for us if you had picked the patch up so we could=20 have upgraded easily to newer rcs versions in the future. > 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 > =E2=80=98integrity=E2=80=99 header directly. To DTRT, i think we need = to specify that > =E2=80=98integrity=E2=80=99 be composed of a system part and a user par= t, 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 =E2=80=98integrity=E2=80=99, a conceptually con= sistent (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 =E2=80=98integrity=E2=80=99, t300 should pass w= /o modification. Sounds good, but doesn't help us since we actually need to share the=20 repos with the 3rd party rcs system which adds this private header field=20 our patch should take care of. > Hannes K=C3=BCttner 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. Actually the python program just calls the binaries. This is very new=20 stuff and still needs some testing, but once we have found it is stable=20 we can make it available under a free license. Thanks, Martin --=20 Martin Burnicki Meinberg Funkuhren Bad Pyrmont Germany