Re: gdb.git mirror is broken

H.J. Lu
2009-10-06T13:08:32Z

On Tue, Oct 6, 2009 at 12:38 AM, Jim Meyering <jim@meyering.net> wrote:
> 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.

I didn't realize that cpu was excluded on purpose. I just
did a comparison between gdb tree checked out from CVS
and gdb tree checked out from git. I don't mind leaving it as is.

>> 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.

I am enclosing my script at the end of this email. It diffs
all ChangLogs between 2 gdb trees.

> 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.
>

It sounds a good idea. But don't we need to switch src tree to git, not
just gdb tree? I don't mind checking out the whole src tree. But we
need a way to build only gcc, gdb, binutils, .... even though there are
more packages.

Thanks.

--
H.J.
---
#! /bin/sh

gdb=$1

cl="
./etc/ChangeLog
./gdb/gdbserver/ChangeLog
./gdb/ChangeLog
./gdb/testsuite/ChangeLog
./gdb/doc/ChangeLog
./intl/ChangeLog
./bfd/ChangeLog
./bfd/doc/ChangeLog
./libdecnumber/ChangeLog
./readline/examples/rlfe/ChangeLog
./ChangeLog
./opcodes/ChangeLog
./libiberty/ChangeLog
./config/ChangeLog
./cpu/ChangeLog
./sim/frv/ChangeLog
./sim/arm/ChangeLog
./sim/mcore/ChangeLog
./sim/m32r/ChangeLog
./sim/mips/ChangeLog
./sim/d10v/ChangeLog
./sim/cr16/ChangeLog
./sim/h8300/ChangeLog
./sim/ChangeLog
./sim/sh/ChangeLog
./sim/m68hc11/ChangeLog
./sim/testsuite/frv-elf/ChangeLog
./sim/testsuite/mips64el-elf/ChangeLog
./sim/testsuite/d10v-elf/ChangeLog
./sim/testsuite/ChangeLog
./sim/testsuite/sim/mips/ChangeLog
./sim/testsuite/sim/cr16/ChangeLog
./sim/testsuite/sim/h8300/ChangeLog
./sim/testsuite/sim/sh/ChangeLog
./sim/testsuite/sim/sh64/ChangeLog
./sim/testsuite/sim/sh64/media/ChangeLog
./sim/testsuite/sim/sh64/compact/ChangeLog
./sim/testsuite/m32r-elf/ChangeLog
./sim/igen/ChangeLog
./sim/iq2000/ChangeLog
./sim/ppc/ChangeLog
./sim/v850/ChangeLog
./sim/mn10300/ChangeLog
./sim/sh64/ChangeLog
./sim/erc32/ChangeLog
./sim/common/ChangeLog
./sim/m32c/ChangeLog
./include/gdb/ChangeLog
./include/elf/ChangeLog
./include/opcode/ChangeLog
./include/coff/ChangeLog
./include/aout/ChangeLog
./include/ChangeLog
./include/nlm/ChangeLog
"

for f in $cl
do
diff -up $f $gdb/$f
done