Re: A Proposal to Move to Git

Eli Zaretskii
2013-08-21T15:05:44Z

> From: Tom Tromey <tromey@redhat.com>
> CC: Binutils Development <binutils@sourceware.org>
> Date: Tue, 20 Aug 2013 15:12:41 -0600
>
> I'd like to move gdb and binutils from CVS to Git. I've done much of
> the preliminary work and I will do the remainder, including the
> inevitable follow-up bug-fixing.

Thanks for doing this.

> Once the infrastructure bits are in place, there is the matter of the
> conversion:
>
> * Convert the tree. We can perhaps reuse parts of the existing
> conversion process for this. I will try a test conversion at least
> once. Since the old history is available
> (see http://sourceware.org/ml/binutils/2012-10/msg00407.html),
> we can try to merge it before conversion.
> There seem to be several approach we can take here. I am
> investigating the options, but I'm interested in your expert
> advice.
>
> * Mark the various converted directories as read-only in CVS.
> This can be done via the commitinfo file.

What about possible issues related to the differences in how CVS and
git do things? A few things come to mind:

. Tags. CVS tags file revisions, while git tags the whole tree. Can
this cause loss of information?

. Files/directories that are deleted or moved/renamed. Will the
information from the Attic be extracted, and will git be able to
intuit renaming and handle deleted files correctly? (One type of
file which we constantly rename is ChangeLog.)

. How will the committers be mapped? AFAIU, CVS and git represent
committers differently.

. Which branches will be converted? Do we want to convert all or
just some, and if the latter, which ones will be left out?

. Finally, what about some QA, once the initial conversion is done?
Can we run some scripts to be sure nothing is lost?

It's quite possible that some, or maybe even all of these issues are
already solved by the existing conversion procedure. But I thought
I'd raise these (and other similar) issues, since I don't think they
can be postponed for later -- once we convert and start working with
git, the history that we have at that point will be practically
immutable, so whatever will be missed during the conversion will never
happen. Therefore, I think we need to be aware of any such issues and
review them carefully before we decide how to handle them.