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

Re: Diff format in packs

From
Jon Smirl <jonsmirl@gmail.com>
Date
Aug 1, 2006, 01:13 UTC
Message-ID
<9e4733910607311813l78791e40l1234cf0e458db66f@mail.gmail.com>
In-Reply-To
<46a038f90607311747j947c786s6af2fe637dbde89d@mail.gmail.com>
On 7/31/06, Martin Langhoff <martin.langhoff@gmail.com> wrote:
Show 5 quoted lines
> Jon,
>
> just get all the file versions out of the ,v file and into the GIT
> repo, then do find .git/objects/ -type f | git-pack-objects. You don't
> have to even think of generating the packfile yourself.

Moz CVS expands into over 1M files and 12GB in size. I keep getting concerned about algorithms that take days to complete and need 4GB to run.

Show 7 quoted lines
> On 8/1/06, Jon Smirl <jonsmirl@gmail.com> wrote:
> > I am working on combining cvs2svn, parsecvs and cvsps into something
> > that can handle Mozilla CVS.
>
> If you publish your WIP somewhere, I might be able to jump in and help
> a bit. I've seen your "challenge" email earlier, but haven't been able
> to get started yet -- lots of work on other foss fronts.

I haven't got anything useful yet, I keep switching in and out of working on this. I am still trying to work out a viable transition strategy that I can attempt to sell the Mozilla developers on. So far I don't have one.

The requirements I have so far:
1) the conversion needs to be reproducible so that Moz staff can do it
internally without a lot of hassle. They need to verify that nothing
has been lost.
2) It shouldn't need a monster machine to run it and it can't take
days to finish
3) It has to have incremental support so that it can be run in
parallel with CVS with commits still going to CVS.
4) nothing can be lost out of existing CVS
5) a bonus feature would be a partial repository to avoid the initial
700MB git download.

cvsps meets these requirements except for not losing anything out of the existing CVS. cvsps is throwing away some items it finds confusing. So far the only algorithm that appears to successfully convert all branches into change sets is the algorithm in cvs2svn. http://cvs2svn.tigris.org/source/browse/cvs2svn/trunk/design-notes.txt?rev=2536&view=markup

I've spent more time looking at parsecvs than cvsps, is it reasonable to convert cvsps to the algorithm described above? Another strategy would be to use cvs2svn to build the changeset database and then use cvsps to simply read the changesets out of it and build the git repository.

Parsecvs never finishes the conversion it always hits an error or GPF after 4-5 hours, probably a wild pointer somewhere.

-- 
Jon Smirl
jonsmirl@gmail.com
Previous: Martin LanghoffNext: Martin Langhoff
Message 8 of 13 in “Diff format in packs”
  1. Jon SmirlJul 31, 2006
  2. Jakub NarebskiJul 31, 2006
  3. Jon SmirlJul 31, 2006
  4. Shawn PearceJul 31, 2006
  5. Jon SmirlJul 31, 2006
  6. Martin LanghoffAug 1, 2006
  7. Martin LanghoffAug 1, 2006
  8. Jon SmirlAug 1, 2006
  9. Martin LanghoffAug 1, 2006
  10. Jon SmirlAug 1, 2006
  11. Martin LanghoffAug 1, 2006
  12. Johannes SchindelinAug 1, 2006
  13. Jakub NarebskiAug 1, 2006

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.