Thread: CVS repository invalid revision
Hello there, I'm running a conversion of PostgreSQL's CVS repository, but I'm stuck on a revision that cscvs fails to parse. The hint that the error gives me is: Parser error: failed to parse revision data line (line: 'date: 2000/12/04 01:20:38; author: tgl; state: Exp; lines: ') That's the literal output -- I'm not sure what the linebreak after "lines:" means. Can someone help me out by finding and fixing the corrupted revision? I"d be most grateful. -- Christian Robottom Reis | http://async.com.br/~kiko/ | [+55 16] 3376 0125
Christian Robottom Reis wrote: > I'm running a conversion of PostgreSQL's CVS repository, but I'm > stuck on a revision that cscvs fails to parse. I can't quite answer that particular question, but there are already somewhat stable conversions of the CVS repository to Subversion and Git available, so perhaps you want to work off that. -- Peter Eisentraut http://developer.postgresql.org/~petere/
On Sat, Feb 16, 2008 at 08:28:42PM +0100, Peter Eisentraut wrote: > Christian Robottom Reis wrote: > > I'm running a conversion of PostgreSQL's CVS repository, but I'm > > stuck on a revision that cscvs fails to parse. > > I can't quite answer that particular question, but there are already somewhat > stable conversions of the CVS repository to Subversion and Git available, so > perhaps you want to work off that. Ah, interesting. Do you have a URL for the Subversion conversion? Is it a mirror of CVS, and if so, how often is it updated? -- Christian Robottom Reis | http://async.com.br/~kiko/ | [+55 16] 3376 0125
Christian Robottom Reis wrote: > I'm running a conversion of PostgreSQL's CVS repository, but I'm > stuck on a revision that cscvs fails to parse. The hint that the error > gives me is: > > Parser error: failed to parse revision data line (line: 'date: 2000/12/04 01:20:38; author: tgl; state: Exp; lines: > ') > > That's the literal output -- I'm not sure what the linebreak after > "lines:" means. > > Can someone help me out by finding and fixing the corrupted revision? > I"d be most grateful. There's no corrupted revision -- the text you see is part of a log message, not a real header line. So the cscvs tool would seem to need to be able to cope with that. The complete entry (this is from contrib/pgcrypto/md5.c, but there are several more files touched by this commit) is this: revision 1.3date: 2001-01-09 13:07:13 -0300; author: momjian; state: Exp; lines: +16 -16;The KAME files md5.* and sha1.*have the following changelogentry: ----------------------------revision 1.2date: 2000/12/04 01:20:38; author: tgl; state: Exp; lines:+18 -18Eliminate someof the more blatant platform-dependencies ... itbuilds here now, anyway ...---------------------------- Which basically changes u_int*_t -> uint*_t, so now it does notcompile neither under Debian 2.2 nor under NetBSD 1.5 whichisplatform independent<B8> all right. Also it replaces $KAME$with $Id$ which is Bad Thing. PostgreSQL Id should beadded as aseparate line so the file history could be seen. So here is patch: * changes uint*_t -> uint*. I guess that was the original intention* adds uint64 type to include/c.h because its needed [somebody should check if I did it right]* adds back KAME Id, because KAME is the master repository* removes stupidc++ comments in pgcrypto.c* removes <sys/types.h> from the code, its not needed --marko Marko Kreen And then you have the actual 1.2 revision mentioned in the log message, which is revision 1.2date: 2000-12-03 22:20:38 -0300; author: tgl; state: Exp; lines: +18 -18;Eliminate some of the more blatantplatform-dependencies ... it builds here now, anyway ... -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support
On Sun, 17 Feb 2008, Christian Robottom Reis wrote: > Ah, interesting. Do you have a URL for the Subversion conversion? Is it > a mirror of CVS, and if so, how often is it updated? The Subversion one is at https://projects.commandprompt.com/public/pgsql/repo/ and I haven't noticed comments on how often that particular one updates yet. On a broader note, there is a list of alternate repositories available with notes about their update frequency at http://developer.postgresql.org/index.php/Working_with_CVS#Other_versions_of_the_PostgreSQL_Repository that I try to keep up to date as people mention new ones. -- * Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Mon, 18 Feb 2008 15:59:29 -0500 (EST) Greg Smith <gsmith@gregsmith.com> wrote: > On Sun, 17 Feb 2008, Christian Robottom Reis wrote: > > > Ah, interesting. Do you have a URL for the Subversion conversion? > > Is it a mirror of CVS, and if so, how often is it updated? > > The Subversion one is at > https://projects.commandprompt.com/public/pgsql/repo/ and I haven't > noticed comments on how often that particular one updates yet. I think it is every 4 hours but I am in the process of changing it (after testing) so that it is every 10 minutes. Joshua D. Drake - -- The PostgreSQL Company since 1997: http://www.commandprompt.com/ PostgreSQL Community Conference: http://www.postgresqlconference.org/ Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate PostgreSQL SPI Liaison | SPI Director | PostgreSQL political pundit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFHuxivATb/zqfZUUQRAmwiAJ9esKdMzhqiJeCR712A2HirymZocQCcDqez KbrSmqmstQc52NDqJZNziBA= =2TVA -----END PGP SIGNATURE-----
On Mon, Feb 18, 2008 at 03:13:24PM -0300, Alvaro Herrera wrote: > Christian Robottom Reis wrote: > > > I'm running a conversion of PostgreSQL's CVS repository, but I'm > > stuck on a revision that cscvs fails to parse. The hint that the error > > gives me is: > > > > Parser error: failed to parse revision data line (line: 'date: 2000/12/04 01:20:38; author: tgl; state: Exp; lines: > > ') > > > > That's the literal output -- I'm not sure what the linebreak after > > "lines:" means. > > > > Can someone help me out by finding and fixing the corrupted revision? > > I"d be most grateful. > > There's no corrupted revision -- the text you see is part of a log > message, not a real header line. So the cscvs tool would seem to > need to be able to cope with that. The complete entry (this is from > contrib/pgcrypto/md5.c, but there are several more files touched by this > commit) is this: > > revision 1.3 > date: 2001-01-09 13:07:13 -0300; author: momjian; state: Exp; lines: +16 -16; > The KAME files md5.* and sha1.* have the following changelog > entry: > > ---------------------------- > revision 1.2 > date: 2000/12/04 01:20:38; author: tgl; state: Exp; lines: > +18 -18 > Eliminate some of the more blatant platform-dependencies ... it > builds here now, anyway ... > ---------------------------- Wow, that's very interesting. Thanks for pointing it out; now that I have this in hand, I need to chase somebody interested in fixing a cscvs bug <wink> -- Christian Robottom Reis | http://async.com.br/~kiko/ | [+55 16] 3376 0125
Christian Robottom Reis <kiko@canonical.com> writes: > On Mon, Feb 18, 2008 at 03:13:24PM -0300, Alvaro Herrera wrote: >> There's no corrupted revision -- the text you see is part of a log >> message, not a real header line. So the cscvs tool would seem to >> need to be able to cope with that. > Wow, that's very interesting. Thanks for pointing it out; now that I > have this in hand, I need to chase somebody interested in fixing a cscvs > bug <wink> I notice that cvsweb doesn't handle it very gracefully, either. It looks to me like it's just about impossible for anything that is parsing "cvs log" output to tell the difference between this and a genuine revision entry header, which means it's probably breaking most of the other conversion tools too. Perhaps it'd be worth hacking the CVS repository entries to modify these log entries a bit? Indenting the quoted revision entry a few spaces would probably do it. According to http://archives.postgresql.org/pgsql-committers/2001-01/msg00115.php the affected files are contrib/pgcrypto/ md5.c md5.h pgcrypto.c pgcrypto.h sha1.c sha1.h regards, tom lane
Being prodded by this, I decided to take another look at why cvsps doesn't work on PostgreSQL CVS repository... It happens that it's choking on a bunch of the various REL7_1 tags... And, the fromcvs converter, which works fine, just happens to *not* support importing tags - go figure ;-) So, my solution - strip them all out, and low-and-behold, cvsps works (and thus, so does git-cvsimport). So, for people having problems with the "cvs repository", try and eliminate the REL7_1* tags, and see if the problems go away... Here's my ugly 30 second perl to "remove" the REL7_* tags... Of course, git-cvsimport (with tags stripped) takes hours to convert the repository, rather than the couple 10s of minutes for fromcvs, but at least it works... a. -- Aidan Van Dyk Create like a god, aidan@highrise.ca command like a king, http://www.highrise.ca/ work like a slave.
Aidan Van Dyk wrote: > And, the fromcvs converter, which works fine, just happens to *not* > support importing tags - go figure ;-) > > > Meaning it chokes on the $PostgreSQL: ...$ stuff? or what? cheers andrew
On Wed, Feb 20, 2008 at 05:00:14PM -0500, Aidan Van Dyk wrote: > So, for people having problems with the "cvs repository", try and > eliminate the REL7_1* tags, and see if the problems go away... I'm currently trying an import off Subversion. Is there a copy of the CVS repo somewhere I can rsync, if that doesn't work? -- Christian Robottom Reis | http://async.com.br/~kiko/ | [+55 16] 3376 0125
* Andrew Dunstan <andrew@dunslane.net> [080220 17:11]: > Aidan Van Dyk wrote: > >And, the fromcvs converter, which works fine, just happens to *not* > >support importing tags - go figure ;-) > Meaning it chokes on the $PostgreSQL: ...$ stuff? or what? $something$ are "keywords" in CVS speak. Tags are "cvs tag" type operations that put "human labels" on a specific set of files (like REL7_1BETA2, etc). It's the cvs tags, not keywords that are causing cvsps the pain (and thus git cvsimport). fromcvs doesn't try and import tags at all, so it happens to avoid that that tag problem completely. I haven't tried to figure out exactly what tag it is, or what file(s) the tags are problematic on yet, because it takes repeated munging/cvsps runs to figure out, and I haven' had the time yet... But just blindkly removing all the REL7_1* tags "worked for me"... a. -- Aidan Van Dyk Create like a god, aidan@highrise.ca command like a king, http://www.highrise.ca/ work like a slave.
Christian Robottom Reis wrote: > On Wed, Feb 20, 2008 at 05:00:14PM -0500, Aidan Van Dyk wrote: > >> So, for people having problems with the "cvs repository", try and >> eliminate the REL7_1* tags, and see if the problems go away... >> > > I'm currently trying an import off Subversion. Is there a copy of the > CVS repo somewhere I can rsync, if that doesn't work? > rsync anoncvs.postgresql.org::pgsql-cvs /path/to/mirror cheers andrew
Christian Robottom Reis wrote: > I'm currently trying an import off Subversion. Is there a copy of the > CVS repo somewhere I can rsync, if that doesn't work? Sure: http://www.postgresql.org/docs/8.3/interactive/rsync.html -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
* Christian Robottom Reis <kiko@canonical.com> [080220 17:32]: > On Wed, Feb 20, 2008 at 05:00:14PM -0500, Aidan Van Dyk wrote: > > So, for people having problems with the "cvs repository", try and > > eliminate the REL7_1* tags, and see if the problems go away... > > I'm currently trying an import off Subversion. Is there a copy of the > CVS repo somewhere I can rsync, if that doesn't work? anoncvs allows rsync:rsync -qavzCH --delete anoncvs.postgresql.org::pgsql-cvs PostgreSQL/ -- Aidan Van Dyk Create like a god, aidan@highrise.ca command like a king, http://www.highrise.ca/ work like a slave.
* Aidan Van Dyk <aidan@highrise.ca> [080220 17:00]: > It happens that it's choking on a bunch of the various REL7_1 tags... > And, the fromcvs converter, which works fine, just happens to *not* > support importing tags - go figure ;-) > > So, my solution - strip them all out, and low-and-behold, cvsps works > (and thus, so does git-cvsimport). > > So, for people having problems with the "cvs repository", try and > eliminate the REL7_1* tags, and see if the problems go away... > > Here's my ugly 30 second perl to "remove" the REL7_* tags... I see I forgot to include it. I've found that it's only REL7_1_BETA[23] that cause the problem... And it seems like both those tags are taging various files from various points in time, and such a way that cvsps loops forever... Here' my perl to "fix" the repository and allow cvsps to work: It's ugly, and I make no guarantee that it doesn't "corrupt" some binary file somewhere... #!/usr/bin/perlmy @TAGS = qw(REL7_1_BETA2 REL7_1_BETA3);for my $file (@ARGV){ my $i, $o; my @sb = stat($file); printf"%s: %d\n", $file, $sb[7]; open(INPUT, "<:raw", $file) || die "Couldn't open $file: $!\n"; $i = sysread INPUT, $buf, $sb[7]; close INPUT; for my $tag (@TAGS) { $buf =~ s/ $tag:[.0-9]*\n//es; $buf =~ s/\n $tag:[.0-9]*;\n/;\n/es; } open OUTPUT, ">:raw", "$file.new"; $o = syswrite OUTPUT, $buf; close OUTPUT; printf "IN: %d OUT: %d\n", $i,$o; rename ("$file.new", $file) || die "Couldn't rename: $!\n";} Run it over the repository like:find CVSROOT/pgsql -name \*,v | xargs perl parse.pl YMMV... a. -- Aidan Van Dyk Create like a god, aidan@highrise.ca command like a king, http://www.highrise.ca/ work like a slave.