Re: gdb.git mirror is broken

Jim Meyering
2009-10-06T07:38:17Z

H.J. Lu wrote:

> Hi Jim,
>
> gdb.git mirror at
>
> http://sources.redhat.com/git/gdb.git
>
> is broken. The problems are
>
> 1: "cpu" directory is missing.

Considering cpu/ has never been included in a gdb.git mirror
(it's been explicitly excluded from the beginning), it may
make sense to reconvert the repository from scratch, in order
to include that directory and all of its history.

However, that would have the disadvantage of changing all
existing SHA1 commit values -- which might cause problems with
the likes of archer.git.

> 2. Top level files and gdb/gdbserver, bfd, sim, include directories
> haven't been updated since 2009-09-16.

I don't know what caused the process to stop mirroring
those directories. It could be a bug in cvsps, git-cvsimport,
my script, git-push, or even rsync.

IMHO, the best would be to remove CVS from the loop.
Leading up to that, I propose the following:

I will re-convert all of gdb's CVS history to git (using parsecvs),
not excluding the cpu/ directory this time. Then, I will add checks
to my mirroring script to notify me if git and CVS checkouts ever
diverge.

Note that the initial conversion is via parsecvs,
yet incrementals are via my scripts, which rely on git-cvsimport
(which in turn relies on cvsps).

If anyone is interested in switching primary GDB development
to git, once such a new repository is in place and deemed stable,
I urge you to dump CVS. While the conversion tools are not always
reliable, I can assure you that git itself has been amazingly reliable
for years.

---------------------------------------
If you want to keep existing SHA1 commits (say for archer),
yet continue with minimal disruption, and you don't mind
omitting the history of cpu/ for now, I can easily plop
all of cpu/ and the missing bits of the out-of-sync directories
into gdb.git via a single commit. That will make it so a git
clone and a cvs checkout produce identical (modulo CVS/ dirs)
hierarchies. And who knows, maybe it'll make it so changes
to offending directories will once again be tracked via the
mirroring mechanism.

It looks like I'll have to adjust my mirroring script to
incur still more overhead (space and time) to verify cvs/git
consistency, regardless...

Also, please be aware that this is a mostly-extracurricular project.