newsGNU RCS - News: dispatch program ponderings

 
 
Latest News
RCS 5.10.1 available posted by ttn, Thu 03 Feb 2022 07:31:06 AM UTC
RCS 5.10.0 available posted by ttn, Tue 20 Oct 2020 02:55:29 PM UTC
RCS 5.9.4 available posted by ttn, Fri 23 Jan 2015 09:02:45 AM UTC
RCS savannah project page posted by ttn, Wed 24 Sep 2014 01:14:59 PM UTC
RCS 5.9.3 available posted by ttn, Thu 18 Sep 2014 12:06:37 PM UTC

dispatch program ponderings

Item posted by Thien-Thi Nguyen <ttn> on Mon 31 Oct 2011 10:22:29 AM UTC.

The next release of GNU RCS will install a dispatch program.  This message is to air some thoughts on it with hopes that feedback can inform further progress.  The dispatch program is called from the shell; its role is to invoke the other commands.

First, the name: grcs.  I chose this for two reasons:

  • The logical choice "rcs" is already a command.

Overloading "rcs" is possible, but that would introduce the need to distinguish between "old rcs" and "new rcs" at runtime.  A new name is much simpler.

  • The "g" could stand for GNU.

This helps distinguish GNU RCS from other RCS implementations.

That said, i am open to suggestions for another name.  Next: the command selection.  At time of writing, the following programs have been converted to be invokable by the dispatch program:

  • ci
  • co
  • rcs
  • rcsclean
  • rcsdiff
  • rcsmerge
  • rlog


Missing is ident(1) and merge(1), the rationale being that they are logically not necessarily tied to RCS.  That is, these two are useful outside RCS proper.  For example, i can imagine ident(1) being migrated to its own project, in the process unifying implementations from CVS, Subversion, etc, and then adding customization features.  (Any budding hackers interested?  What are you waiting for?)  Likewise, it would be nice to see merge(1) move into GNU diffutils (and furthermore exposed as a shared-object library, if we permit ourselves some wishful thinking...).

The opposing argument (that both these should also be converted) is supported by uniformity and simplicity.  These are gut-feel qualities that nonetheless weigh heavily on the aesthetically sensitive.  I picture users converting scripts to use "grcs rlog" but not "grcs ident" grumbling about the maintainer's arbitrariness, not having read (or perhaps not having shared in the imagination of) this message, for example.  What do people think?

Lastly: standalone compatability.  For compatability, standalone executables in $(bindir), such as /usr/bin/ci are installed.  These are implemented as simple shell scripts that invoke the dispatch program.  (If you wonder why not symlinks, see the GNU Coding Standards, section "Standards for Interfaces Generally".)  A new configure script option ‘--disable-standalone-compat’ inhibits their installation, for those ready to make the jump.  The plan is to keep the default enabled for RCS 5.x and remove it (and standaldone programs) in 6.x.

Feedback welcome; please write to help-rcs (a gnu dot org address).

 

Back to the top

Powered by Savane 3.13-758e.
Corresponding source code