From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carl Worth Subject: Re: several quick questions Date: Wed, 15 Feb 2006 00:21:06 -0800 Message-ID: <87wtfxhw25.wl%cworth@cworth.org> References: <43F20532.5000609@iaglans.de> <87k6bxvmj6.wl%cworth@cworth.org> <1139943349.4341.66.camel@evo.keithp.com> <1139945967.4341.71.camel@evo.keithp.com> <46a038f90602142011o36b975b7s1833953db3b6d376@mail.gmail.com> <1139981145.4341.137.camel@evo.keithp.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: multipart/signed; boundary="pgp-sign-Multipart_Wed_Feb_15_00:21:06_2006-1"; micalg=pgp-sha1; protocol="application/pgp-signature" Content-Transfer-Encoding: 7bit Cc: Martin Langhoff , Linus Torvalds , Nicolas Vilz 'niv' , git X-From: git-owner@vger.kernel.org Wed Feb 15 09:22:12 2006 Return-path: Envelope-to: gcvg-git@gmane.org Received: from vger.kernel.org ([209.132.176.167]) by ciao.gmane.org with esmtp (Exim 4.43) id 1F9HvM-0005ZC-F6 for gcvg-git@gmane.org; Wed, 15 Feb 2006 09:22:08 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423034AbWBOIWF (ORCPT ); Wed, 15 Feb 2006 03:22:05 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1423036AbWBOIWF (ORCPT ); Wed, 15 Feb 2006 03:22:05 -0500 Received: from theworths.org ([217.160.253.102]:17887 "EHLO theworths.org") by vger.kernel.org with ESMTP id S1423034AbWBOIWD (ORCPT ); Wed, 15 Feb 2006 03:22:03 -0500 Received: (qmail 22728 invoked from network); 15 Feb 2006 03:22:02 -0500 Received: from localhost (HELO raht.cworth.org) (127.0.0.1) by localhost with SMTP; 15 Feb 2006 03:22:02 -0500 To: Keith Packard In-Reply-To: <1139981145.4341.137.camel@evo.keithp.com> User-Agent: Wanderlust/2.14.0 (Africa) Emacs/21.4 Mule/5.0 (SAKAKI) Sender: git-owner@vger.kernel.org Precedence: bulk X-Mailing-List: git@vger.kernel.org Archived-At: --pgp-sign-Multipart_Wed_Feb_15_00:21:06_2006-1 Content-Type: multipart/mixed; boundary="Multipart_Wed_Feb_15_00:21:06_2006-1" --Multipart_Wed_Feb_15_00:21:06_2006-1 Content-Type: text/plain; charset=US-ASCII On Tue, 14 Feb 2006 21:25:45 -0800, Keith Packard wrote: > On Wed, 2006-02-15 at 17:11 +1300, Martin Langhoff wrote: > > > Did that lead to finding any problems with the import? Can I get my > > hands on that script you've written to run the comparison? > > The only issues we had were with manual changes to the repository; For anyone interested, here are the problems our script found after importing cairo with git-cvsimport: 1) Some "future" files existed at old tags since we had copied ,v files to preserve per-file history. This one was no surprise. 2) We had a couple tags in CVS that didn't tag the current head, (instead a file had been manually reverted before the tag). In the git checkout of the same tag name, we got the results as if HEAD had been tagged. Those two weren't too surprising. We remembered quite clearly what had happened as soon as we saw the results. I've fixed these up post-import by making git commits to fix the problems and then moving the tags. 3) There are some sub-tree tags in cairo's CVS tree as well. Obviously, those aren't very interesting for direct comparison. Also not surprising. For these, I just modified the script to whitelist the tags I actually cared about checking. 4) There was a branch that diverged from the main line two commits "late" in the git history. I'm not sure what caused this, but it's obviously happening in the cvsps output. I fixed the problem by capturing the cvsps output into a file, reordering the branching patchset up two positions in the list, then feeding the result into git-cvsimport with its -P option. I've attached the script I used to do the git and cvs comparisons. I was getting perfect results with a local rsync of cairo's CVS repository. The version here does a pserver checkout instead. When I run this I'm apparently getting different substitution of some of those annoying RCS $Id:...$ strings. Looks like the formatting of the date is different. So your mileage may vary. But here it is if its of any interest. --Multipart_Wed_Feb_15_00:21:06_2006-1 Content-Type: application/octet-stream Content-Disposition: attachment; filename="git-cvs-compare" Content-Transfer-Encoding: 7bit #!/bin/sh set -e CVSROOT=:pserver:anoncvs@cairographics.org:/cvs/cairo GITMASTER=git://git.cairographics.org/cairo if [ ! -e cairo-cvs ]; then echo -n "Performing CVS checkout to cairo-cvs..." cvs -d $CVSROOT co -d cairo-cvs cairo > /dev/null echo "done." fi if [ ! -e cairo-git ]; then echo -n "Cloning git repository to cairo-git..." git clone $GITMASTER cairo-git echo "done." fi # This is what you probably want to check all tags #for tag in $(ls cairo-git/.git/refs/tags); do # Instead, for cairo we whitelist the tags to check since there are # some bogus partial-tree tags that just aren't interesting. for tag in SNAPSHOT_0_1_16 SNAPSHOT_0_1_20 SNAPSHOT_0_1_21 SNAPSHOT_0_1_22 SNAPSHOT_0_1_23 LGPL_CHANGE_BEFORE LGPL_CHANGE_AFTER SNAPSHOT_0_2_0 SNAPSHOT_0_3_0 SNAPSHOT_0_4_0 SNAPSHOT_0_5_0 SNAPSHOT_0_5_1 SNAPSHOT_0_5_2 SNAPSHOT_0_6_0 RELEASE_0_9_0 RELEASE_0_9_2 RELEASE_1_0_0 RELEASE_1_0_2; do echo -n "Performing cvs update to $tag..." (cd cairo-cvs; cvs -Q update -r $tag > /dev/null) echo "done." echo -n "Performing git checkout of $tag..." # Linus says this is the most efficient way to do this, but it # seems to leave some empty directories around that shouldn't be # there. # (cd cairo-git; git checkout -b cvs-compare >& /dev/null || true; git checkout cvs-compare; git reset --hard $tag) # This might be slower, but it's plenty fast still and it does the right thing (cd cairo-git; git checkout master; git branch -D cvs-compare >& /dev/null || true; git checkout -b cvs-compare $tag) echo "done." echo -n "Comparing cvs and git trees for $tag..." if diff -r -x CVS -x .git cairo-cvs cairo-git >& cairo.diff; then echo "perfect." rm cairo.diff else echo "different. :(" echo " Saving trees to cairo-git-$tag & cairo-cvs-$tag and diff to cairo-$tag.diff" cp -a cairo-git cairo-git-$tag cp -a cairo-cvs cairo-cvs-$tag mv cairo.diff cairo-$tag.diff fi done --Multipart_Wed_Feb_15_00:21:06_2006-1 Content-Type: text/plain; charset=US-ASCII --Multipart_Wed_Feb_15_00:21:06_2006-1-- --pgp-sign-Multipart_Wed_Feb_15_00:21:06_2006-1 Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) iD8DBQBD8uRy6JDdNq8qSWgRAtKiAKCFlud7Zpr87G8RYMz/OdMg+sU3DgCaAz0J lGb9LlZ9IIxzSBFupcKDaj8= =imyo -----END PGP SIGNATURE----- --pgp-sign-Multipart_Wed_Feb_15_00:21:06_2006-1--