cvsclone 0.00 review

Download
by rbytes.net on

cvsclone is a utility to clone cvs repositories over the cvspserver interface

License: GPL (GNU General Public License)
File size: 33K
Developer: Peter Backes
0 stars award from rbytes.net

cvsclone is a utility to clone cvs repositories over the cvspserver interface. Works for anonymous access.

Here are some key features of "cvsclone":
reads $HOME/.cvspass
can clone corrupt repositories: writes ,v files directly, does not need rcs. (For example, ccvs module has archives that go backwards in time.)

Problems:

can't enable compression.
reading cvs password from $HOME/.cvspass uses CVSROOT in a case sensitive way.
rlog format is ambiguous. If the separators it uses are found inside log messages, possibly followed by lines similar to what rlog outputs, things can go wrong horribly.
rcs 5.x rlog format does not contain the comment leader. It is not even guessed according to the extension as rcs does, but set to "# ".
uses normal diff format since this is the easiest one that works. diff --rcs is problematic, since files without newline at the last line are not output correctly. The major drawback about this is that deleted lines are transfered while they don't need to be. even rdiff has major problems with lines that contain , because of a bug in cvs.
does not work incrementally. That would be much more work if updating the trunk since the most recent revision had to be reconstructed. Also, the whole history probably had to be transfered again, with all log messages.
Horrible complexity. A file with n deltas takes O(n^2) to transfer.
Makes the cvs server really work hard, taking up all processor time. It should really not be used on public cvs servers, especially not on a regular basis. Perhaps it is useful for salvaging archive files from projects where only access to anonymous cvs is available.
scanner is not really optimal. Has been optimized for no-backup partly, but later additions have not yet been taken care of. Some parts could be removed (ideas now dead: included, excluded, etc.) while others could be improved by trailing context instead of complicated complemental regex.

Patches and comments are welcome.

cvsclone 0.00 keywords