Interesting. Judging from the comments in the beginning, I take it that it still doesn't try to sort out moves and copies in the cvs repository, right? Is it possible to script it to e.g operate on specific ranges at a time to be able to cope with such things manually?
Correct, I've not looked at that stuff yet; I considered getting a correct commit graph more important.
I've just started adding code to analyze the $Id$-tags when they differ from the expected, they give hints about renames, copies, merges, etc. Unfortunately, it looks like the information can't be used as is, since the reason for the differing is sometimes that the file has originally been developed in a different repository (or eg in a different main branch of Pike). I guess the best approach would be to require the user to specify how each of the cases should be handled.
Or perhaps you're planning a better way to accomplish that, e.g. by feeding it a sort of event log that describes such things, along with stuff like joins from other repos, forks into different repos (i.e. Roxen-style branching), and other things that require out-of-band "constructed" commits in git?
Yes, I'm considering supporting a config file where such stuff can be specified.