RFCs on new cvs2* features

"Eric S. Raymond" <[email protected]> Tue, 8 Jan 2013 06:46:32 -0500 (EST)
Newsgroups gmane.comp.version-control.subversion.cvs2svn.devel
Message-ID <[email protected]>
Three proposals for discussion:

1. cvs2* is still too noisy in an un-useful way.

The stats at the end of the run are not very interesting except as
diagnostics for developers.  The present design still violates 
the Unix maxim that programs should run quietly unless (a) they
have an exception to report, or (b) the expected runtime is so
long that silence could be confused with "it's hung".

Therefore: the end-of-run report ought to be disabled by default and
enabled with a --stats option.

2. cvs2* should have a twirling-baton progress meter

Because these tools do run long on large repositories, a visual progress
indication would be a good idea in the default running mode.  But pass
messages are too heavyweight and mainly of interest to developers.
Ideally we want a progress meter that is relatively fine-grained but
doesn't hog a lot of vertical screen space, so you don't visually lose your
shell-session context when you run the tool.

The design trope I have found to be most effective in this situation
is a twirling-baton prompt.  To see how this works, ask reposurgeon
to do a read on a largish repository.  What it does is repeatedly use the
sequence ^H|^H/^H-^H\ to animate a twirling baton; each quarter-spin
is triggered by baton.twirl() calls at relatively frequent intervals
like "we just processed a commit".  Of course --quiet should suppress this.

3. Access to remote repositories

I've been doing a lot of work lately on another CVS lifter called
cvsps.  It's written in C, and its topo-analysis code is not all that
good.  But it does have another potentially very valuable module in it. 
cvsclient.c opens a socket connection to a designated remote CVS
server and can fetch all the RCS files in the repository from same.

This code could be translated to a Python class with little 
difficulty. (In fact I wrote a mechanical C-to-Python translator 
some years back that would do most of the work.)  I could deliver that
with a test main that would prove its performance.

The part I don't want to do is mating the client class to the analysis 
stage in cvs2*. Is somebody else interested enough in remote
repository access to do that?
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>

Every Communist must grasp the truth, 'Political power grows out of
the barrel of a gun.'
        -- Mao Tse-tung, 1938, inadvertently endorsing the Second Amendment.

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1667&dsMessageId=3041799

To unsubscribe from this discussion, e-mail: [[email protected]].