Re: gdb.git hiccup

Jim Meyering
2009-10-08T09:20:55Z

Joel Brobecker wrote:
> > I'll build the newer version and make my cvs-to-git process use it.
> > It can only help. Though it can't repair the current holes in gdb.git.
> > Regarding that, if one of you gdb developers who use gdb.git can send
> > me git format-patch output that makes a clone from gdb.git identical to
> > a just-checked-out-from-cvs gdb directory, I will push it to both the
> > staging and public repositories.
>
> Here is a patch that should do the trick.

FYI, here's what I've done to the public git repo:

cvs -d /cvs/src co -P gdb # creates "src/"
git clone /git/gdb.git gdb-git
diff -Naur -xCVS -x.git gdb-git src > k
cd gdb-git
patch -p1 < ../k
git add .
git ci -m 'manually sync from the CVS repository' -a
git push

Then I did the same to the staging directory into which
cvs-to-git changes are first deposited, and from which
the hourly cron pushes to the public repo.

Now, the checkout/clone-and-comparison shows that the only difference
is the empty contrib/ directory (only-in-cvs in spite of -P):

cvs -d /cvs/src co -P gdb && git clone /git/gdb.git gdb-git \
&& diff -ru -xCVS -x.git src gdb-git
Only in src: contrib
[Exit 1]

With that, and the newly-installed cvsps-2.2b1, let's hope the git
repository stays in sync. I'm now running this script via cron every hour,
so if something fails to propagate, I'll know right away.

#!/bin/sh
# Ensure that CVS checkout and git clone produce the same tree.

set -e
tmp=$(mktemp -d)

cleanup()
{
__st=$?;
rm -rf "$tmp"
exit $__st
}
trap cleanup 0
trap 'exit $?' 1 2 13 15

cd "$tmp"
cvs -Q -d /cvs/src co -P gdb
git clone -q /git/gdb.git gdb-git
rm -rf src/contrib/CVS
rmdir src/contrib
diff -ru -xCVS -x.git src gdb-git