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

packs and trees

From
Jon Smirl <jonsmirl@gmail.com>
Date
Jun 20, 2006, 05:57 UTC
Message-ID
<9e4733910606192257y1516e966t848a3b1e29e5667f@mail.gmail.com>

Converting from CVS would be a lot more efficient if all of revisions contained in a CVS file were written into git at the same time. So, if I extract complete revisions from 100 source files into git objects and then ask git to incremental pack, will git find all of the deltas and do a good job packing? Some of these files have thousands (50MB) of deltas. Also, note that I have not written any tree info into git yet.

After all of the revisions are into git, I will follow up with the tree info and then repack all. How will the pack end up grouped, chronologically or will it still be sorted by file? It is not clear to me how the tree info interacts with the magic packing sauce.

The plan is to modify rcs2git from parsecvs to create all of the git objects for the tree. It would be called by the cvs2svn code which would track the object IDs through the changeset generation process. At the end it will write all of the trees connecting the objects together.

cvs2svn seems to do a good job at generating the trees. I am not exactly sure how the changeset detection algorithms in the three apps compare, but cvs2svn is not having any trouble building changesets for Mozilla. The other two apps have some issues, cvsps throws away some of the branches and parsecvs can't complete the analysis.

-- 
Jon Smirl
jonsmirl@gmail.com
Next: Martin Langhoff
Message 1 of 10 in “packs and trees”
  1. Jon SmirlJun 20, 2006
  2. Martin LanghoffJun 20, 2006
  3. Jon SmirlJun 20, 2006
  4. Keith PackardJun 20, 2006
  5. Jon SmirlJun 20, 2006
  6. Nicolas PitreJun 20, 2006
  7. Martin LanghoffJun 20, 2006
  8. Nicolas PitreJun 20, 2006
  9. Linus TorvaldsJun 21, 2006
  10. David LangJun 21, 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.