git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] git-cvsimport-script: parse multidigit revisions

From
Linus Torvalds <torvalds@osdl.org>
Date
Jul 25, 2005, 23:00 UTC
Message-ID
<Pine.LNX.4.58.0507251544300.6074@g5.osdl.org>
In-Reply-To
<20050713011818.GM9915@kiste.smurf.noris.de>
On Wed, 13 Jul 2005, Matthias Urlichs wrote:
Show 6 quoted lines
> 
> Sven Verdoolaege:
> > Previously, git-cvsimport-script would fail
> > on revisions with more than one digit.
> > 
> Ouch. Thanks.

Hmm.. I finally tried to import the bkcvs kernel tree into git, and while I'm cursing the slowness of CVS (I'm _hoping_ that part of the problem is just that CVS is especially slow with old versions of files, and that the import will eventually start speeding up), there's definitely something wrong going on with new files in an archive...

In particular, they always end up being imported as zero-sized empty files, and will be filled in only later if that file is ever touched again. In other words, the resulting git tree ends up being bogus.

The command line I used was
	git cvsimport -d /home/torvalds/bkcvs -p --bkcvs linux-2.5

and I wonder if it's the "--bkcvs" thing that confuses cvsimport, but I also wonder if anybody has actually tried this before. With or without the --bkcvs line, I get

	Argument "28213 has collisions" isn't numeric in addition (+) at /home/torvalds/bin/git-cvsimport-script line 600, <CVS> line 1.
	* UNKNOWN LINE * PatchSet 28209 has collisions
	* UNKNOWN LINE * PatchSet 28194 has collisions
	* UNKNOWN LINE * PatchSet 28181 has collisions
	* UNKNOWN LINE * PatchSet 28180 has collisions
	...

Sadly, since I don't know perl, I can't tell whether this is a problem with cvsps on the kernel, or the cvsimport perl script. I'm going to try my old hacky C + shell alternative next just to see, but I thought I'd ask whether people have tried this before and already know what's wrong.

Btw, looking at what the perl script _seems_ to do, it does seem to do insane things for the local CVS archive case. As far as I can tell from the spaghetti that is perl, it uses a CVS server to handle even the local file case, which just _can't_ be right. I realize you'd want to do that to avoid connecting millions of times, but maybe it's better to use something like cvsnup to download the whole thing, and then always use a local CVS archive?

			Linus
Previous: Matthias UrlichsNext: Matthias Urlichs
Message 3 of 11 in “git-cvsimport-script: parse multidigit revisions”
  1. git-cvsimport-script: parse multidigit revisionsSven Verdoolaege, Jul 12, 2005
  2. Matthias UrlichsJul 13, 2005
  3. Linus TorvaldsJul 25, 2005
  4. Matthias UrlichsJul 25, 2005
  5. Linus TorvaldsJul 26, 2005
  6. Linus TorvaldsJul 26, 2005
  7. Linus TorvaldsJul 26, 2005
  8. Rene ScharfeJul 26, 2005
  9. David MansfieldJul 26, 2005
  10. Linus TorvaldsJul 26, 2005
  11. Ryan AndersonJul 26, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.