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

Re: Importing Bzr revisions

From
Shawn O. Pearce <spearce@spearce.org>
Date
Mar 23, 2009, 13:55 UTC
Message-ID
<20090323135504.GA9732@spearce.org>
In-Reply-To
<03AC7EDA-2A9F-4626-A67B-CE9F2A88FC7D@gmail.com>
David Reitter <david.reitter@gmail.com> wrote:
Show 5 quoted lines
>
> I'm just experimenting with "bzr fast-export", which converts to git,  
> and it seems to take about 4 minutes for 1000 revisions on our (modern) 
> server.  That would be around 7 hours for my emacs repository; I can't do 
> that daily.
No, you'd want to incrementally do that...
> I wonder if there's a way for (bzr) fast-export / (git) fast-import to  
> work incrementally, i.e. for selected or most recent revisions.

fast-import supports incremental use; git-p4 does it from Perforce. The trick is the application writing the stream (bzr fast-export in this case) needs to do something to pick up the prior revisions. It might do that by using the same mark numbers, and requiring you to use --import-marks and --export-marks on the git side to save the mark database between runs. I don't know, I haven't looked at it.

> Or, one could do something like  bzr diff -r $REV.. $BBRANCH |  (cd  
> $GBRANCH; patch -p0; git commit), plus preserving authors and log  
> messages.   Is this roughly what the fast-export format does anyways?
Eh, sort of.

The fast-import format works on whole files, not patches. So we have to get the entire file from bzr each time it is modified. If the file is a small source file, you almost can't tell the difference in performance. If its a huge binary that changes often, it hurts to keep dumping the entire thing over the stream.

But at the commit level, yes, it preserves authorship and log messages, assuming the bzr fast-export program incldued that data. And I'm rather certain it does.

-- 
Shawn.
Previous: David ReitterNext: Teemu Likonen
Message 5 of 11 in “Importing Bzr revisions”
  1. David ReitterMar 23, 2009
  2. Junio C HamanoMar 23, 2009
  3. David ReitterMar 23, 2009
  4. David ReitterMar 23, 2009
  5. Shawn O. PearceMar 23, 2009
  6. Teemu LikonenMar 23, 2009
  7. David ReitterMar 26, 2009
  8. Pieter de BieMar 23, 2009
  9. David ReitterMar 23, 2009
  10. Pieter de BieMar 23, 2009
  11. David ReitterMar 23, 2009

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.