[svlug] -who option

Michael Eager eager at eagerm.com
Sat Mar 2 17:35:43 PST 2019

On 03/02/2019 02:24 PM, Mehma Sarja wrote:
> Hi LUGers,
> As the people who were around back when OSS started in earnest start keeling over, we should formalize our history. I propose we have a “-who” option for Linux commands which documents the history and people related to each command.
> For example “ls” would get a new option “ls -who” which would provide a history of the command and the people behind it.

As has been mentioned, the GNU way would be '-w' or '--who'.  But why?

I'm all in favor of keeping track of our history and, certainly, much of 
it has already been lost.  I have a box of 5 1/4" floppy disks which may 
have valuable historical information if only I could read them.  Or 
maybe not, since the small labels have felt-tip marker names in 8.3 
format like "clrdfl.txt", which I'm sure was meaningful before the 
synapses which contained that meaning were slowly but surely expunged.

This reminds me of the way that we tracked changes in source files in 
the days of SCCS, RCS, and maybe even dusty decks in a shoebox.  Every 
file (and depending on shop standards, every function) would have a 
header which contained a description written years before when the file 
(or function) was created, and which may or may not still be descriptive 
to its current operation.  Every time someone made a modification to the 
file they were to describe the change, usually with a date and the 
persons name, initials, or handle.  These ranged from cryptic one's like 
"12/13/96 Wombat: Fixed bug" to a detailed analysis of the procedure 
which had been removed from the function.  (I kid you not:  part of a 
complex part of GDB contains a long critical comment describing what 
used to be done at the location, complete with why it was wrong, but not 
one word describing what was done now, only the assertion that it was 
better.)  Often, unless someone was checking, developers would forgot to 
update the change log making it incomplete at best.

The inline history would sometimes turn a 300 line file into a thousand 
line file, with new comments contradicting older ones, none of which 
could be matched with actual code changes.  The one redeeming grace was 
that once compiled, these often ignored comments did not generate 
additional code.

With the development of improved Source Control Systems, such as CVS, 
Hg, SVN, and git, descriptions of changes moved out-of-line into the 
repository, where they no longer cluttered the source code and could be 
managed much easier and much better.

Adding a authors function, triggered by '--who', would have many of the 
same issues.  While the persons' names (or handle like Wombat above) 
would be included, there would be little to indicate whether the person 
fixed a critical vulnerability or just corrected punctuation errors.  Of 
course, we could have each person describe their changes so it could be 
printed with their name, either resulting in "Wombat: Fixed critical 
bug" or a long essay on the serial comma.  Likely, few people would ever 
look at the list of authors and it would often not be updated.

One difference that an inline authors display has from the inline change 
log is that the authors function generates executable code, which even 
if never exercised, still takes up space in the executable file.

Of course, for any project in a git repository, finding the authors is 
not all that difficult:
   $ git log --format='%aN'

Michael Eager    eager at eagerm.com
1960 Park Blvd., Palo Alto, CA 94306

More information about the svlug mailing list