groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Groff] groff repo conversion in progress


From: Eric S. Raymond
Subject: [Groff] groff repo conversion in progress
Date: Thu, 21 Nov 2013 17:38:59 -0500 (EST)

Compared to most CVS conversions this one was almost ridiculously easy;
cvs-fast-export and reposurgeon made short work of it.  (I improved
both slightly in the process, which is normal; every repo, even the 
easy ones, is a different challenge.)

The git conversion is nearly linear, with one root, only one multi-child
commit, and no merges.  

The one fork commit, :1808 "groff pre-1.16 with new directory
structure", has a child :18138 "new html fonts" which consists of a
flood of deletes and one modification of font/devhtml/Makefile.sub;
this commit is in turn childless. This is obvious junk to be deleted.
You were either very lucky or very careful; most CVS repos of any age
have a lot more cruft in them than this.

File commits before Wed Apr 11 22:45:11 2007 lack commitids to bind
them into changesets.  Coalescence of file vommits older than this may
not be perfect.

No commit comments refer to RCS revision numbers, so no
reference-lifting was required. All committers have been identified
and have git-style IDs with full name and email address.

I have a usable conversion now; the dump is just shy of a gigabyte
long.  What happened to the history before 2000?  Was the code really
not under version control until that late?

The only step not done is massaging multiline commit comments so they
obey git conventions.  Normally I do this, but given the particular
conventions GNU projects use it's not clear I should.

Here's the problem.  In the git world, the first line of each comment
should be a short standalone summary of the committer's intention.
But there's no obvious way to extract such a summary line from an
existing change comment like this...

* html.cc (html_printer::make_new_image_name): Tidied up file and
fixed name of image if the source file is in a different directory.

* html.cc (create_file): Renamed to create_tmp_file.

* html.cc (create_file): Identified & fixed security bug when
creating files in /tmp.

* Makefile.sub: Adapted to new directory structure.

I'll look at this some more to see what percentage of cases I cab
salvage, but I think we have to accept that the view of older sections of
the history in gitk isn't going to be very pretty.
-- 
                <a href="http://www.catb.org/~esr/";>Eric S. Raymond</a>

False is the idea of utility that sacrifices a thousand real advantages for
one imaginary or trifling inconvenience; that would take fire from men because
it burns, and water because one may drown in it; that has no remedy for evils
except destruction.  The laws that forbid the carrying of arms are laws of
such a nature.  They disarm only those who are neither inclined nor determined
to commit crimes.
        -- Cesare Beccaria, as quoted by Thomas Jefferson's Commonplace book



reply via email to

[Prev in Thread] Current Thread [Next in Thread]